Keras 图片分类算法中的参数设置简介

Keras 图片分类算法中的参数设置简介

数据增强(Data Augment)

一般只对训练集增强,不对验证集增强。

1
2
ImageDataGenerator.flow_from_directory(TRAIN_PATH, class_mode='categorical',  #one hot encode
target_size=(64, 64), color_mode='rgb', shuffle=True,batch_size=BS)

class_mode=’categorical’: 使用one-hot编码
class_mode=’binary’: 使用二进制编码,一般用于二分类
target_size: 用来调整网络输入图片大小
batch_size:一次生成图片数

最上层网络

1
2
3
4
5
top_model = modelResnet50.output
top_model = Flatten(name='flatten')(top_model)
top_model = Dense(256, activation='relu')(top_model)
top_model = Dropout(0.5)(top_model)
top_model = Dense(2, activation='sigmoid')(top_model)

最后一个全连接层参数个数应该和lable值的维数一致。多分类一般用one-hot编码,就是类别数。如果是二分类,如果为one-hot编码,设为2,如果为二进制编码(数据增强时设置class_mode=’binary’),则为1。

二分类时激活函数使用sigmoid, 多分类时使用softmax。

编译时

1
model.compile(loss='binary_crossentropy', optimizer=opt, metrics=['accuracy'])

如果为二分类问题损失函数使用binary_crossentropy,多分类则使用categorical_crossentropy、softmax_crossentropy。