任何人都可以帮助我使用 keras 合并层

vnctdzn

我从https://github.com/raducrs/Applications-of-Deep-Learning/blob/master/Image%20captioning%20Flickr8k.ipynb看到了这段代码,并尝试在 google colab 中运行它,但是当我运行下面的代码时它给了我错误。它说

不推荐合并

我想知道如何使用 keras 最新版本运行此代码。

LSTM_CELLS_CAPTION = 256
LSTM_CELLS_MERGED = 1000

image_pre = Sequential()
image_pre.add(Dense(100, input_shape=(IMG_FEATURES_SIZE,), activation='relu', name='fc_image'))
image_pre.add(RepeatVector(MAX_SENTENCE,name='repeat_image'))

caption_model = Sequential()
caption_model.add(Embedding(VOCABULARY_SIZE, EMB_SIZE,
                            weights=[embedding_matrix],
                            input_length=MAX_SENTENCE,
                            trainable=False, name="embedding"))
caption_model.add(LSTM(EMB_SIZE, return_sequences=True, name="lstm_caption"))
caption_model.add(TimeDistributed(Dense(100, name="td_caption")))

combined = Sequential()
combined.add(Merge([image_pre, caption_model], mode='concat', concat_axis=1,name="merge_models"))
combined.add(Bidirectional(LSTM(256,return_sequences=False, name="lstm_merged"),name="bidirectional_lstm"))
combined.add(Dense(VOCABULARY_SIZE,name="fc_merged"))
combined.add(Activation('softmax',name="softmax_combined"))

predictive = Model([image_pre.input, caption_model.input],combined.output)
佩德罗·马克斯

Merge(mode='concat')现在是Concatenate(axis=1)

以下内容在 colab 上正确生成图表。

from tensorflow.python import keras
from keras.layers import *
from keras.models import Model, Sequential

IMG_FEATURES_SIZE = 10
MAX_SENTENCE = 80
VOCABULARY_SIZE = 1000
EMB_SIZE = 100

embedding_matrix = np.zeros((VOCABULARY_SIZE, EMB_SIZE))

LSTM_CELLS_CAPTION = 256
LSTM_CELLS_MERGED = 1000

image_pre = Sequential()
image_pre.add(Dense(100, input_shape=(IMG_FEATURES_SIZE,), activation='relu', name='fc_image'))
image_pre.add(RepeatVector(MAX_SENTENCE,name='repeat_image'))

caption_model = Sequential()
caption_model.add(Embedding(VOCABULARY_SIZE, EMB_SIZE,
                            weights=[embedding_matrix],
                            input_length=MAX_SENTENCE,
                            trainable=False, name="embedding"))
caption_model.add(LSTM(EMB_SIZE, return_sequences=True, name="lstm_caption"))
caption_model.add(TimeDistributed(Dense(100, name="td_caption")))

merge = Concatenate(axis=1,name="merge_models")([image_pre.output, caption_model.output])
lstm = Bidirectional(LSTM(256,return_sequences=False, name="lstm_merged"),name="bidirectional_lstm")(merge)
output = Dense(VOCABULARY_SIZE, name="fc_merged", activation='softmax')(lstm)

predictive = Model([image_pre.input, caption_model.input], output)
predictive.compile('sgd', 'binary_crossentropy')
predictive.summary()

描述:

这是一个每个样本有 2 个输入的模型:图像和标题(单词序列)。输入图在连接点合并 (name='merge_models')

图像仅由 Dense 层处理(您可能希望向图像分支添加卷积);然后将此密集层的输出复制 MAX_SENTENCE 次以准备合并。

字幕由 LSTM 和 Dense 层处理。

合并产生 MAX_SENTENCE 时间步长,每个时间步长都具有两个分支的特征。

然后组合分支最终从 VOCABULARY_SIZE 中预测出一个类别。

model.summary() 是理解图形的好方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java并发-任何人都可以帮助我进行输出。为什么列表为空?

在keras中使用哪些合并层?

任何人都可以在以下情况下帮助我在DAC上

Keras 2:在“合并”层中使用lambda函数

任何人都可以在用户界面风格定位方面帮助我

任何人都可以通过PIPELINED函数帮助我吗?

在viewpost.php遇到错误,任何人都可以帮助我

任何人都可以帮助我解决尝试使用dll打开端口时遇到的此错误

任何人都可以在C ++中使用if语句和字符串来帮助我吗?

任何人都可以帮助我解决 Hibernate 和 JSF 的这个缺点吗?

什么是 P2P 和网状网络?任何人都可以帮助我吗?

我希望 div 是透明的,但不是 div 内的按钮。任何人都可以帮助我吗?

任何人都可以帮助我们解决这些 Xcode 错误吗?

任何人都可以帮助我在 intelliJ 中使用 GUI 页面

任何人都可以帮助我在 php 的 foreach 循环中使用 json 数据吗?

任何人都可以帮助我在 jQuery 中进行修剪吗?

任何人都可以帮助我在颤振中对齐布局吗?

我对执行流程感到震惊,任何人都可以帮助我

任何人都可以帮助我理解,redux 在现实生活中的实际用途是什么?

减少函数执行 - 任何人都可以帮助我识别错误,因为我无法获得结果

任何人都可以帮助我理解下面代码中的问题吗?

任何人都可以帮助我进行以下 SQL 查询吗?

任何人都可以帮助我进行 webpack 配置吗?

我想在指令中调用我的 API 并在我需要的地方使用指令。任何人都可以帮助我。请罚款我的例子

任何人都可以帮助我解码 SSIS 派生列中的条件(?)运算符

任何人都可以帮助我:android.database.sqlite.SQLiteException:接近“,”:语法错误(代码1):,

任何人都可以帮助我通过 CSS 对齐图标吗?

任何人都可以通过 PySimpleGUI 帮助我编写代码完成此操作

任何人都可以帮助我如何编写这行代码。我想在 jsx 中使用 map