ImageDataGenerator.flow_from_directory(...)

日萌社

人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)


ImageDataGenerator第一种用法:
	#x_batch/lable_batch分别为一个批量大小(batch_size)的训练数据和标签值
	for x_batch, lable_batch in ImageDataGenerator(...).flow(训练集,标签集,batch_size=批量大小)
		model.fit(x_batch, lable_batch)

ImageDataGenerator第二种用法:
	#这里的input输入是单个图片的数据,可以是np.array类型的图片数据
	input = ImageDataGenerator(...).random_transform(input)

ImageDataGenerator第三种用法:
	#target_size=(N, N) 可以指定读取出来的图片大小直接转换为N*N,这样可以方便地把不适配模型要求的输入大小的图片直接转换为指定大小。
	#class_mode='binary'表示不论类别文件夹的名字是数字/字母/中文,都会自动把 所有每个类别文件夹的名字 对应转换为 0~N的 类别值。
	train_generator = ImageDataGenerator(...).flow_from_directory("目录路径",target_size=(N, N),batch_size=批量大小,class_mode='binary')
	validation_generator = ImageDataGenerator(...).flow_from_directory("目录路径",target_size,batch_size,class_mode='binary')
	model.fit_generator(train_generator,
			steps_per_epoch=N, #steps_per_epoch为每个epoch中遍历批量数据的次数,即steps_per_epoch*batch_size等于数据集的样本数
			epochs=N, #epochs为遍历数据集的次数,epoch值为N,那么就遍历数据集N次,比如默认对同一个数据集完整遍历N次
			validation_data=validation_generator,
			validation_steps=N) #validation_steps 同 steps_per_epoch

# 定义输入数据的大小和批次大小
image_size = (224, 224)
batch_size = 32
#即使读取的图片分辨率大小和image_size指定的大小不一致也没关系,
#会对输入图片进行自动截取image_size指定的大小。
#比如VGG16的模型中需要输入的大小为image_size = (224, 224),
#那么即使输入的图片分辨率大小和VGG16指定的大小不一致也没关系,
#即可使用flow_from_directory(...,target_size=image_size,...)指定image_size=(224, 224),
#来读取不符合代销的文件,那么该函数会对输入图片进行自动截取image_size指定的大小
train_gen = ImageDataGenerator(...).flow_from_directory(train_dir,
                                                     target_size=image_size,
                                                     batch_size=batch_size,
                                                     class_mode='binary',
                                                     shuffle=True)


例子1:使用ImageDataGenerator(...).flow_from_directory(...) 读取以下格式的数据集文件
       ImageDataGenerator(...).flow_from_directory(...,class_mode='binary',...) 表示读取的每个分类文件夹名字自动会被转换为0/1/2/3/...等数字
       然后可以使用 model.compile(optimizer=tf.keras.optimizers.Adam(),
                      		loss=tf.keras.losses.sparse_categorical_crossentropy,
		    		metrics = [tf.keras.metrics.sparse_categorical_accuracy]) #也可以使用 metrics=['accuracy']


例子2:使用ImageDataGenerator(...).flow_from_directory(...) 读取以下格式的数据集文件
       ImageDataGenerator(...).flow_from_directory(...,class_mode='binary',...) 表示读取的每个分类文件夹名字自动会被转换为0/1/2/3/...等数字
       然后可以使用 model.compile(optimizer=tf.keras.optimizers.Adam(),
                      		loss=tf.keras.losses.sparse_categorical_crossentropy,
		    		metrics = [tf.keras.metrics.sparse_categorical_accuracy]) #也可以使用 metrics=['accuracy']

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

あずにゃん

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值