Keras-具有注意力机制的图像字幕

时间:2019-04-26 04:19:41

标签: python image-processing keras

我已经编写了以下代码,用于在keras中进行图像字幕,并且效果很好。

image_model = Sequential()
image_model.add(Dense(EMBEDDING_DIM, input_shape=(2048,), activation='relu'))
image_model.add(RepeatVector(max_length))


lang_model = Sequential()
lang_model.add(Embedding(vocab_size,EMBEDDING_DIM , input_length=max_length))
lang_model.add(Bidirectional(LSTM(256,return_sequences=True)))
lang_model.add(Dropout(0.5))
lang_model.add(BatchNormalization())
lang_model.add(TimeDistributed(Dense(EMBEDDING_DIM)))


fin_model = Sequential()
fin_model.add(Merge([image_model, lang_model], mode='concat'))
    #model.add(Concatenate([image_model, lang_model]))
fin_model.add(Dropout(0.5))
fin_model.add(BatchNormalization())
fin_model.add(Bidirectional(LSTM(1000,return_sequences=False)))

fin_model.add(Dense(vocab_size))
fin_model.add(Activation('softmax'))
print ("Model created!")

fin_model.compile(loss='categorical_crossentropy', optimizer='Adam', metrics=['accuracy'])

但是我想在这里添加注意力机制。不需要双向的lstm,只需一个普通的LSTM也可以。但是我看不到一个有用的博客来解释如何在keras中做到这一点。由于我是深度学习的新手,并且Keras是我所知道的唯一python库,因此非常感谢您的帮助。

0 个答案:

没有答案