python - 无法从“keras.layers”导入名称“Merge”
问题描述
我尝试运行代码,但我发现Keras
. 我正在使用 python 3 和keras
2.2.4
这是代码的解码部分
import numpy as np
import pandas as pd
from keras.models import Sequential
from keras.layers import LSTM, Embedding, TimeDistributed, Dense, RepeatVector, Merge, Activation
from keras.preprocessing import image, sequence
import cPickle as pickle
def create_model(self, ret_model = False):
image_model = Sequential()
image_model.add(Dense(EMBEDDING_DIM, input_dim = 4096, activation='relu'))
image_model.add(RepeatVector(self.max_length))
lang_model = Sequential()
lang_model.add(Embedding(self.vocab_size, 256, input_length=self.max_length))
lang_model.add(LSTM(256,return_sequences=True))
lang_model.add(TimeDistributed(Dense(EMBEDDING_DIM)))
model = Sequential()
model.add(Merge([image_model, lang_model], mode='concat'))
model.add(LSTM(1000,return_sequences=False))
model.add(Dense(self.vocab_size))
model.add(Activation('softmax'))
print ("Model created!")
这是错误信息
from keras.layers import LSTM, Embedding, TimeDistributed, Dense, RepeatVector, Merge, Activation
ImportError: cannot import name 'Merge' from 'keras.layers'
解决方案
Merge
Keras +2 不支持。相反,您需要使用Concatenate
层:
merged = Concatenate()([x1, x2]) # NOTE: the layer is first constructed and then it's called on its input
或者它是等效的功能接口concatenate
(以小写字母开头c
):
merged = concatenate([x1,x2]) # NOTE: the input of layer is passed as an argument, hence named *functional interface*
如果您对其他形式的合并感兴趣,例如加法、减法等,那么您可以使用相关层。有关合并层的完整列表,请参阅文档。
推荐阅读
- c# - C# ASP.NET 无法将 Gridview 插入 Word 模板文档
- elasticsearch - ElasticSearch 高级 query_string 查询
- python - 通过根据另一列中的条件更改一列中的值返回错误
- javascript - 无法向 webhook 发出 POST 请求
- python - 如何获取文本文件中十六进制数的长度
- flutter - 颤振应用程序在首次启动时不会立即从共享首选项中获取数据
- angular - 角度显示全文按钮打开所有 div 容器
- react-native - 如果数据是通过“Promis”返回的,则每次执行“onEndReached”后,Flastlist 都会移动到顶部
- url - 带有 # 字符的邮递员请求未响应正确的输出
- python - 如何根据主机名每小时计算平均disk_available,python