【发布时间】:2020-07-13 08:57:18
【问题描述】:
我正在尝试使用tf2.0 和Keras 为项目构建垃圾邮件分类模型。它必须是非常好的模型,我想提高模型的准确性。垃圾邮件图像可以是世界上的任何图像,除了手写问题或this 或this 等问题的图片。我有每个类别的近 300000 张图像,因此我想从随机权重重新训练模型,因为问题图像未包含在 imagenet 数据中并且我有足够的数据。 请建议我是否应该改用imagenet 权重。我想提高我的模型的性能。我有一个类似这样的模型:
res_net = ResNet50(include_top=False,weights=None,input_shape=(224,224,3)) # will try VGG and other models too if needed
av1 = GlobalAveragePooling2D()(res_net.output)
fc1 = Dense(1024,activation='relu')(av1)
fc2 = Dense(512,activation='relu')(fc1)
fc3 = Dense(256,activation='relu')(fc2)
d1 = Dropout(0.5)(fc3)
fc4 = Dense(1,activation='sigmoid')(d1)
model = Model(inputs=res_net.input, outputs= fc4)
问题:
我的图像是问题图像,并且在大多数情况下宽度大于高度,所以我是否将所有图像的大小调整为 (224,224) 或整个数据集中的 min(width or height) (但这会抑制较大图像的细节) ?
我知道密集层的使用取决于我,但由于明显的时间、内存和功率限制,我不能使用 units 和 number of layers 的所有可能组合。所以如果我使用很多密集层/单元,我会不会过度拟合我的模型,因为这些巨大的架构中已经有很多层了?
我应该使用 3 个频道还是 1 个频道?问题图像大多是黑色的,背景是白色的,这样可以加快训练速度,但 3 通道可以有更好的结果 IMO??
【问题讨论】:
标签: tensorflow keras deep-learning neural-network conv-neural-network