2017-12-18 327 views
1

在准备用于神经网络训练的训练集时,我找到两种可能的方法。哪种方法可以进行图像归一化?

  1. 的传统方法:计算上整个训练的平均发送到网络之前设置,再减去每幅图像此固定平均值。以类似的方式处理标准偏差。
  2. 我发现tensorflow提供的功能tf.image.per_image_standardization单一图像正常化。

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

回答

1

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

  • 整个训练集正常化时非常方便,你可以一次加载整个数据集到一个数组numpy的。例如,MNIST dataset通常被完全加载到内存中。当个体图像显着变化时,这种方式在收敛性方面也是优选的:两个训练图像,一个大多是白色,另一个大多是黑色,将具有非常不同的手段。

  • 每个图像当图像逐个加载或小批量加载时(例如从TFRecord加载),规范化非常方便。当数据集太大,太适合内存时,它也是唯一可行的选择。在这种情况下,最好组织input pipeline in tensorflow并像图中其他张量一样转换图像张量。在CIFAR-10中我已经看到了这种标准化的非常好的准确性,尽管存在前面提到的问题,但这是一种可行的方法。另请注意,您可以通过batch normalization减少负面影响。

相关问题