Python 如何使用keras ImageDataGenerator增强图像?

Python 如何使用keras ImageDataGenerator增强图像?,python,machine-learning,keras,deep-learning,data-augmentation,Python,Machine Learning,Keras,Deep Learning,Data Augmentation,我有一个364张图像的训练集存储在numpy数组中,它的标签也存储在不同的numpy数组中(有8个标签要分类)。数据集很小,我想使用增强功能,但只有根据标签将图像存储在特定文件夹中时,才能找到增强图像的资源。那么,如何使用ImageDataGenerator实时增强图像呢。谢谢 解决方案 您应该使用flow而不是flow\u from\u目录流可以使用numpy阵列。我正在粘贴coursera课程的代码 training_images=training_images.重塑((27455,28,

我有一个364张图像的训练集存储在numpy数组中,它的标签也存储在不同的numpy数组中(有8个标签要分类)。数据集很小,我想使用增强功能,但只有根据标签将图像存储在特定文件夹中时,才能找到增强图像的资源。那么,如何使用ImageDataGenerator实时增强图像呢。谢谢

解决方案 您应该使用
flow
而不是
flow\u from\u目录
<代码>流可以使用numpy阵列。我正在粘贴coursera课程的代码


training_images=training_images.重塑((27455,28,28,1))
测试图像=测试图像。重塑((7172,28,28,1))
#创建ImageDataGenerator并进行图像增强
training_datagen=ImageDataGenerator(
重新缩放=1./255,
旋转范围=40,
宽度\偏移\范围=0.2,
高度\位移\范围=0.2,
剪切范围=0.2,
缩放范围=0.2,
水平翻转=真,
填充模式(最近的)
验证\u datagen=ImageDataGenerator(重缩放=1./255)
训练数据生成拟合(训练图像)
验证\u datagen.fit(测试\u图像)
测试标签=tf.1热(测试标签,25)
培训标签=tf.one\u热(培训标签,25)
历史记录=模型拟合生成器(训练数据生成流(
训练你的形象,
y=培训标签,
批量大小=32
),epochs=15,validation\u data=validation\u datagen.flow(
测试图像,
y=测试_标签,
批量大小=32
),verbose=1)
编辑1 课程名称课程:
深度学习TensorFlow中的卷积神经网络。ai

如何知道图像是否增加 确定批量大小,并查看培训完成1个历元需要多少步骤。从中可以推断,图像正在增强

我相信这个解决方案解决了你的问题。如果是,请接受,否则请在下面评论问题是什么

编辑2
#这里有一个更“手动”的示例
对于范围内的e(历元):
打印('Epoch',e)
批次=0
对于x_批次,在training_datagen.flow中的y_批次(x_系列,y_系列,批次大小=32):
#####手动检查每个批次####
批次+=1
增强特定图像 检查下面的文章,它将告诉你如何一个接一个地增强图像


我如何知道在精确度没有提高的情况下增加的图像数量。你也能说出coursera课程的名字吗。谢谢我编辑了答案。已添加问题的答案。删除batch_size参数并运行一段时间。它训练了10幅图像。我就是不明白。10/10是什么意思?是否是增强图像的数量?不要删除批量大小。使用
batch\u size=16
进行训练,然后假设1个历元需要x个步骤,则示例为
batch\u size*x
。i、 e.
16*x
因此,它采取了19个步骤。这意味着16*19=304,即304是增强图像的数量,对吗?