0

我在 MATLAB 上编程,想使用带有实值输入的 RBM,比如灰度图像,所以我试着按照 Hinton 在这篇文章中所说的话。

图像在 [0, 255] 中具有整数值,并存储在矩阵 D 中,即 [numImages x numPixel]。所以我开始预处理数据:

  • 缩放整个数据集,使所有值都在 [0, 1] 中

    D = D / 255;
    
  • 使每个像素在所有图像中的均值为零,因此我从矩阵的每一列中减去其平均值

    imgMean = mean(D);    % row vector
    D = D - repmat(imgMean, rows, 1);
    
  • 将整个数据集除以其标准差,使得每个像素都有单位方差,其中

    D = D / std(D(:));
    

但是当我尝试绘制图像时,结果显然很暗,因为许多值变为负数并被剪裁为零。

这可以吗,还是我在预处理时犯了任何错误?

4

0 回答 0