我使用了在这里找到的几乎相似的代码…
https://towardsdatascience.com/classify-butterfly-images-with-deep-learning-in-keras-b3101fe0f98
这个例子与二进制分类有关。我正在测试的数据需要多类分类。我猜我需要更改激活函数和损失函数。如果我有超过两种类型,我可以使用这里找到的相同代码吗?
https://github.com/bertcarremans/Vlindervinder/blob/master/model/CNN.ipynb
更新:我还有一个问题。如果我有足够的数据,是否需要进行数据增强?
回答:
只需将binary_crossentropy
更改为categorical_crossentropy
:
cnn.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
如果你的标签不是独热编码,请修改这些行:
train_generator = train_datagen.flow_from_directory( 'data/train', target_size=(IMG_SIZE,IMG_SIZE), batch_size = BATCH_SIZE, class_mode='categorical')validation_generator = validation_datagen.flow_from_directory( 'data/validation', target_size=(IMG_SIZE,IMG_SIZE), batch_size = BATCH_SIZE, class_mode='categorical')