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会由于内存不足而停止
所以我只需要对图像进行切片并训练模型
比如说
=>学习50分纪元
=>学习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)。然后,如果我预测,它将根据训练文件结构给出数值。这与我想要的(真正的标签)不同。有什么办法解决这个问题吗?