Python 同时具有图像数据和预提取特征的CNN模型

Python 同时具有图像数据和预提取特征的CNN模型,python,machine-learning,deep-learning,keras,convolutional-neural-network,Python,Machine Learning,Deep Learning,Keras,Convolutional Neural Network,我正在尝试实现一个CNN模型,将一些图像分类到相应的类中。图像大小为64x64x3。我的数据集包括25000张图像和一个CSV文件,其中包含14个预提取的特征,如颜色、长度等 我想建立一个CNN模型,利用图像数据和特征进行训练和预测。如何使用Keras在Python中实现这样一个模型?我将首先假设您可以导入数据而不出现任何问题,并且您已经将x数据分离为图像和特征,并且您将y数据作为每个图像的标签 您可以使用keras函数api使神经网络接受多个输入 from keras.models impor

我正在尝试实现一个
CNN模型
,将一些图像分类到相应的类中。图像大小为
64x64x3
。我的数据集包括25000张图像和一个
CSV
文件,其中包含
14个预提取的特征,如颜色、长度等


我想建立一个
CNN
模型,利用图像数据和特征进行训练和预测。如何使用
Keras
Python
中实现这样一个模型?

我将首先假设您可以导入数据而不出现任何问题,并且您已经将x数据分离为图像和特征,并且您将y数据作为每个图像的标签

您可以使用keras函数api使神经网络接受多个输入

from keras.models import Model
from keras.layers import Conv2D, Dense, Input, Embedding, multiply, Reshape, concatenate

img = Input(shape=(64, 64, 3))
features = Input(shape=(14,))
embedded = Embedding(input_dim=14, output_dim=60*32)(features)
embedded = Reshape(target_shape=(14, 60,32))(embedded)

encoded = Conv2D(32, (3, 3), activation='relu')(img)
encoded = Conv2D(32, (3, 3), activation='relu')(encoded)

x = concatenate([embedded, encoded], axis=1)
x = Dense(64, activation='relu')(x)
x = Dense(64, activation='relu')(x)
main_output = Dense(1, activation='sigmoid', name='main_output')(x)

model = Model([img, features], [main_output])

您能告诉我,在第二次Conv2D变为(无、60、60、32)后,您是如何为
output\u dim
output of encoded得出数字
60*32的吗。为了将两个输出合并在一起,除了一个轴外,它们必须具有相同的形状。60*32被重塑为(14,60,32),这使我们可以在轴1上缩合。如果这个解决方案回答了你的问题,请考虑将它标记为接受。