基于keras的模型融合研究

  最近一直在做关于多模态融合的情感分析研究,所用方法免不了深度学习模型融合。在最新的keras版本中(笔者所用为keras2.2.4),from keras.layers import Merge 这一功能已不复存在,取而代之的则是一系列张量连接的方法,例如from keras.layers import Add,详见https://keras.io/zh/layers/merge/。关于这一功能替换,在github中亦有讨论,其中一位同学对功能改变前和功能改变后,做了简练的解释,意思很到位,有兴趣的同学可以去看一看,链接于此https://github.com/keras-team/keras/issues/3921。

  对之前Merge功能的用法笔者不再赘述,下面的部分主要聚焦于功能改变后的用法,以及代码样例。

  下面的这个demo以张量拼接为例。

from keras.layers import Dense, Concatenate, Input
from keras.models import Model

left_input = Input(shape = (None, 100))
left_model = Dense(8, activation = 'relu')(left_input)

right_input = Input(shape = (None, 100))
right_model = Dense(8, activation = 'relu')(right_input)

conca = Concatenate()([left_model, right_model])
conca_outputs = Dense(3, activation = 'softmax')(conca)

model = Model(inputs= [left_input, right_input], outputs = conca_outputs)
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit([train_X, train_X],train_Y, nb_epoch=100, validation_data=([test_X, test_X],test_Y), batch_size=128, verbose=1)

 

你可能感兴趣的:(基于keras的模型融合研究)