为了账号安全,请及时绑定邮箱和手机立即绑定

如何将年龄和性别数据添加到卷积神经网络的图像中?

如何将年龄和性别数据添加到卷积神经网络的图像中?

杨魅力 2021-12-26 10:39:59
我目前正在通过 Keras CNN 对黑色素瘤图像进行分类。图像带有元数据——年龄、性别和病变位置。现在我只是使用图像,结果还可以,但我想看看如果我将元数据添加到模型会发生什么。如何将年龄、性别等数据添加到图像中?这是导出的数据框的屏幕截图 - 红色是我用于 CNN 的内容,我想添加绿色部分:如果有这样做的标准方法,如果您能分享它,我将非常感激。谢谢我试过谷歌“向 CNN 添加人口统计数据”或“向 CNN 添加性别”等,但找不到任何信息。我目前的模型结构是:model = Sequential()    model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape))    model.add(MaxPool2D(pool_size=(2, 2)))    model.add(BatchNormalization())    model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape))    model.add(MaxPool2D(pool_size=(2, 2)))    model.add(BatchNormalization())    model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape))    model.add(BatchNormalization())    model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape))    model.add(BatchNormalization())    model.add(Conv2D(32, kernel_size=(3, 3), activation='relu'))    model.add(BatchNormalization())    model.add(MaxPool2D(pool_size=(2, 2)))    model.add(Conv2D(32, (3, 3), activation='relu'))    model.add(BatchNormalization())    model.add(Conv2D(32, (3, 3), activation='relu'))    model.add(BatchNormalization())    model.add(MaxPool2D(pool_size=(2, 2)))    model.add(Flatten())    model.add(Dense(128, activation='relu'))    model.add(Dropout(0.2))    model.add(Dense(64, activation='relu'))    model.add(Dropout(0.2))    model.add(Dense(num_classes, activation='sigmoid'))    adam = Adam(lr=0.001)    model.compile(loss='binary_crossentropy',                  optimizer=adam,                  metrics=[km.binary_precision(), km.binary_recall(),km.binary_f1_score()])
查看完整描述

1 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

您所描述的实际上是一个多输入模型。在这种情况下,您可以考虑让图像输入 CNN,元数据输入全连接网络,然后合并这两个子网络的输出以获得您的预测。

查看关于它的 Keras 文档:https : //keras.io/guides/functional_api/#models-with-multiple-inputs-and-outputs



查看完整回答
反对 回复 2021-12-26
  • 1 回答
  • 0 关注
  • 310 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信