1.准备训练集、测试集、验证集
参考:训练集、验证集、测试集以及交验验证的理解
一开始我把测试集和验证集混为一谈,因为挺多资料里的代码这两个照片集直接用同一个,后面才发现是两个集,而且分开的话训练的效果才更好。
1.训练集(train set) :用来训练模型的图片数据样本。
2.验证集(validation set):是模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估。
3.测试集(test set):其实就是最后需要分类的照片。
一个比喻:
训练集-----------53题目
验证集-----------53后面的答案,你需要对答案来判断自己的水平
(每个epoch结束后,把验证集拿来跑一下模型,根据指标判断一下这个epoch的训练效果,根据结果,判断是否要调整超参数(比如学习速率,dropout比例))
测试集-----------高考,考的题是平常都没有见过,考察学生举一反三的能力。
传统上,一般三者切分的比例是:6:2:2。
训练集:我差不多设置了每类250张左右(其实建议500张左右)。验证集:60张左右。测试集我其实每次只放了2、3张照片左右,就是看看效果)。
2.训练模型
train_datagen = keras.preprocessing.image.ImageDataGenerator(
preprocessing_function=keras.applications.resnet50.preprocess_input,
rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
fill_mode='nearest',
)
train_generator = train_datagen.flow_from_directory(train_dir,
target_size=(height, width),
batch_size=batch_size,
seed=7,
shuffle=True,
class_mode="categorical")
valid_datagen = keras.preprocessing.image.ImageDataGenerator(
preprocessing_function=keras.applications.resnet50.preprocess_input)
valid_generator = valid_datagen.flow_from_directory(valid_dir,
target_size=(height, width),
batch_size=batch_size,
seed=7,
shuffle=False,
class_mode="categorical")
全部码:
懒的写了
optimizer=”sgd” 优化器看自己要选sgd 还是adam,我不知道哪个比较好
没赶紧写,现在码都找不到了
Original: https://blog.csdn.net/qq_43477666/article/details/115681889
Author: 你看我还有机会吗呜呜呜呜
Title: ResNet50图像分类
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/667129/
转载文章受原作者版权保护。转载请注明原作者出处!