【问题标题】:"Merge" replacement Keras/Tensorflow/Python3“合并”替换 Keras/Tensorflow/Python3
【发布时间】:2018-10-18 06:48:15
【问题描述】:

Merge 未与 Keras/Tensorflow/Python3 版本一起运行。对于以前的版本,Merge 正在运行。 但现在,它没有运行。所以我想我应该用替换“合并”来转换这段代码。新的 Keras/Tensorflow/Python3 版本中缺少“合并”。

如何重写 Merge(..., mode='ave') 和 Merge(...,mode='concat') ?

我的代码部分如下:

...

from keras.layers import Merge
...
left_branch = Sequential()
left_branch.add(Convolution3D...
...
right_branch = Sequential()
right_branch.add(Convolution3D...
...
merged = Merge([left_branch, right_branch], mode='ave')
lstm_branch = Sequential()
lstm_branch.add(Embedding(input_dim=7, output_dim=8, input_length=7))
lstm_branch.add(LSTM(output_dim=8, input_shape=(7, ) ))
lstm_branch.add(Dense(32, activation='relu'))

model = Sequential()
model.add(merged)
merged_2 = Merge([model, lstm_branch], mode='concat')
model_2 = Sequential()
model_2.add(merged_2)
model_2.add(Dense(nb_classes,init='normal'))
model_2.add(Activation('softmax'))
model_2.compile(loss='categorical_crossentropy', optimizer='RMSprop', metrics=['accuracy'])

【问题讨论】:

  • 您得到的究竟是哪条错误消息?下次还请格式化您的代码以更清晰。

标签: python tensorflow merge keras lstm


【解决方案1】:

Merge 已被 Concatenate 和 Average 取代, 这是新版 Keras 的一个变化。现在你应该像这样实现它们

from keras.layers.merge import Concatenate, Average   

layer_merge = Concatenate()( [layer1, layer2] )
layer_avg   = Average()( [layer1, layer2] )

完整的文档可以在here找到

【讨论】:

  • 好的,我试试。
猜你喜欢
  • 2020-02-28
  • 2021-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-17
  • 1970-01-01
相关资源
最近更新 更多