哪种方法可以进行图像规范化?

问题描述 投票:1回答:1

在为神经网络训练准备训练集时,我找到了两种可能的方法。

  1. 传统方式:计算整个训练集的均值,并在发送到网络之前减去每个图像的固定平均值。以类似的方式处理标准偏差。
  2. 我发现tensorflow提供了一个函数tf.image.per_image_standardization,它在单个图像上进行归一化。

我想知道哪种方式更合适?

python tensorflow neural-network deep-learning data-science
1个回答
1
投票

两种方式都是可能的,选择主要取决于您读取数据的方式。

  • 当您可以将整个数据集一次加载到numpy数组中时,整个训练集规范化很方便。例如,MNIST dataset通常完全加载到内存中。这种方式在收敛方面也是优选的,当各个图像显着变化时:两个训练图像,一个大部分是白色而另一个大部分是黑色,将具有非常不同的手段。
  • 当图像逐个或小批量加载时,例如来自TFRecord,每个图像标准化是方便的。当数据集太大而不适合内存时,它也是唯一可行的选项。在这种情况下,最好组织input pipeline in tensorflow并转换图像张量,就像图中的其他张量一样。我已经看到CIFAR-10中这种规范化的准确性非常好,所以尽管存在前面提到的问题,但这是一种可行的方法。另请注意,您可以通过batch normalization减少负面影响。
© www.soinside.com 2019 - 2024. All rights reserved.