我目前正在通过 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()])
繁星点点滴滴
相关分类