Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用tensorflow cnn学习时,是否会影响批量学习的模型精度_Python 3.x_Tensorflow_Cnn - Fatal编程技术网

Python 3.x 使用tensorflow cnn学习时,是否会影响批量学习的模型精度

Python 3.x 使用tensorflow cnn学习时,是否会影响批量学习的模型精度,python-3.x,tensorflow,cnn,Python 3.x,Tensorflow,Cnn,我正在处理大量的图像 但是,当使用python pillow解压时,python会由于内存不足而停止 所以我只需要对图像进行切片并训练模型 比如说 完整数据:1.jpg,2.jpg~100.jpg =>学习50分纪元 切片数据:批次1->1.jpg~10.jpg,批次2->11.jpg~20.jpg…..批次10 =>学习50个历元第1批,学习50个历元第2批 模型的准确度有差异吗? 感谢图像数据往往会占用大量内存。通常,如果您试图将所有图像作为一个大数据集进行处理,则会出现内存耗尽错误。为了处

我正在处理大量的图像
但是,当使用python pillow解压时,python会由于内存不足而停止
所以我只需要对图像进行切片并训练模型
比如说

  • 完整数据:1.jpg,2.jpg~100.jpg
    =>学习50分纪元
  • 切片数据:批次1->1.jpg~10.jpg,批次2->11.jpg~20.jpg…..批次10
    =>学习50个历元第1批,学习50个历元第2批
  • 模型的准确度有差异吗?

    感谢

    图像数据往往会占用大量内存。通常,如果您试图将所有图像作为一个大数据集进行处理,则会出现内存耗尽错误。为了处理这个问题,数据被累积为“批量”图像,并在训练期间作为模型的输入依次提供。发电机通常用于实现这一点。例如,假设您有10000个训练图像,例如300 x 300 rgb像素。这是大量的数据。因此,您可以将其分批处理,而不是一次处理所有10000张图像。batch_size可用于定义一次处理多少图像并存储在内存中。例如,如果将批处理大小设置为50,则需要200个连续批处理一个训练历元的所有图像。200是model.fit中称为每历元的步长。如果您愿意,您可以创建自己的生成器,但keras提供了几个API可以为您实现这一点。这方面的文档是我更喜欢使用来自目录的ImageDataGenerator.flow_来提供所需的批生成,但也可以提供图像增强。批量大小在一定程度上会影响模型性能,也会影响培训持续时间。小批量通常会使训练持续时间更长,并导致每个历元的度量差异更大,但在避免陷入局部极小方面有一些优势。较大的批量往往会缩短整个培训时间。我通常使用不同的批处理大小运行几次,以查看模型性能是否有显著变化。

    数据集不适合内存是很常见的。尝试使用生成器,以便仅在内存中加载少量样本(一批图像)。当然,如果以这种方式交替训练,精度会有所不同,这是一个惊人的解决方案。非常感谢。但这又引出了另一个问题。如果我使用ImageDataGenerator,标签将根据文件结构返回为int类型,而不是“real”标签(在我的例子中,是category.0~1048.prefined)。然后,如果我预测,它将根据训练文件结构给出数值。这与我想要的(真正的标签)不同。有什么办法解决这个问题吗?