如何在Keras中向CNN添加其他信息?

时间:2019-02-05 09:07:34

标签: python keras conv-neural-network

我想向CNN添加一些其他信息,例如性别,年龄,媒介...

我的CNN的输入矩阵表示尺寸为125x64的语音直方图。由于它们来自不同的人,因此我想将该信息添加到模型中。此外,我想添加一些代表声音的音高或能量的矢量125x1(来自特征提取),但我认为将其附加到直方图上并不是一个好主意。

 model = Sequential()

 model.add(Conv2D(32, (3, 3), padding='valid', strides=1,
             input_shape=input_shape, activation='relu'))

 model.add(MaxPooling2D(pool_size=(4, 3), strides=(1, 3)))

 model.add(Conv2D(32, (1, 3), padding='valid', strides=1,
      input_shape=input_shape, activation='relu'))

 model.add(MaxPooling2D(pool_size=(1, 3), strides=(1, 3)))

 model.add(Flatten())
 model.add(Dense(512, activation='relu'))
 model.add(Dense(512, activation='relu'))
 model.add(Dropout(0.5))

 model.add(Dense(nb_classes))
 model.add(Activation('softmax'))

 model.compile(loss='categorical_crossentropy',
          optimizer='adadelta',
          metrics=['accuracy'])

1 个答案:

答案 0 :(得分:0)

将数据添加到直方图确实没有多大意义。 Keras在自己的文档中对如何在模型中使用多个输入进行了解释:https://keras.io/getting-started/functional-api-guide/多输入和多输出模型似乎就是您想要的。