是否有用于具有大量类的多类分类的体系结构?



我对深度学习很陌生,做爱好项目。现在我正在对 200 个类进行多类图像分类。是否有我可以查看的教程或实际架构?

到目前为止,我尝试了基本的密集和CNN网络,但我永远无法达到超过5%的准确率。

到目前为止,我最基本的CNN看起来像这样。

model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),
activation='relu',
input_shape=input_shape,
data_format='channels_first'))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(128, (4, 4), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(256, (5, 5), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))
model.compile(loss=keras.losses.categorical_crossentropy,
optimizer=keras.optimizers.Adam(),
metrics=['accuracy'])

我寻找解决方案,但永远找不到任何具有如此大量类的项目(除了 VGG-19 或其他 SOTA CNN,但我会尝试编写自己的,因为这是为了学习目的)。是否有人有类似的项目或对此类问题有一些教程或任何建议?

提前谢谢。

200个类实际上很少。

尝试

from keras.applications.resnet50 import ResNet50
model = ResNet50(weights=None, classes=200)
model.compile(loss=keras.losses.categorical_crossentropy,
optimizer=keras.optimizers.Adam(),
metrics=['accuracy'])

这个模型(ResNet50)应该足以完成大多数任务。

keras.applications中的每个模型都被训练为有1000个类,如果你的任务是一些真实世界的图像,你可以使用训练后的权重

from keras.applications.resnet50 import ResNet50
from keras.layers import Dense
from keras.models import Model
model = ResNet50(weights='imagenet')
x = model.get_layer('avg_pool').output
x = Dense(200, activation='softmax')(x)
model = Model(model.input, x)

相关内容

  • 没有找到相关文章

最新更新