Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Keras 2.0.0上使用合并层(concat函数)?_Python_Tensorflow_Deep Learning_Keras - Fatal编程技术网

Python 如何在Keras 2.0.0上使用合并层(concat函数)?

Python 如何在Keras 2.0.0上使用合并层(concat函数)?,python,tensorflow,deep-learning,keras,Python,Tensorflow,Deep Learning,Keras,我试图使用Keras重现实体嵌入模型。下面是使用kaggle分支的方法。有一个python文件models.py,使用了Merge层 从keras.layers.core导入密集、退出、激活、合并、重塑 …… self.model.add(合并(models,mode='concat')) 对于旧版本的Keras,此代码应该可以,但是使用Keras 2.0.0,使用tensorflow 1.0.0作为后端(python 2.7),将出现错误信息: 使用TensorFlow后端。 回溯(最近

我试图使用Keras重现实体嵌入模型。下面是使用
kaggle
分支的方法。有一个python文件
models.py
,使用了
Merge


从keras.layers.core导入密集、退出、激活、合并、重塑
……
self.model.add(合并(models,mode='concat'))

对于旧版本的Keras,此代码应该可以,但是使用Keras 2.0.0,使用tensorflow 1.0.0作为后端(python 2.7),将出现错误信息:

使用TensorFlow后端。
回溯(最近一次呼叫最后一次):
文件“/Users/pengjuzhao/Udacity/MLND/entity embedded rossmann/test_model.py”,第2行,在
从模型导入带有实体嵌入的NN_
文件“/Users/pengjuzhao/Udacity/MLND/entity embedded rossmann/models.py”,第8行,在
从keras.layers.core导入密集、退出、激活、合并、重塑
导入错误:无法导入名称合并
[在1.8s内完成,退出代码为1]
[shell\u cmd:python-u”/Users/pengjuzhao/Udacity/MLND/entity-embedding-rossmann/test\u model.py”]
[dir:/Users/pengjuzhao/Udacity/MLND/entity-embedding-rossmann]
[路径:/usr/bin:/bin:/usr/sbin:/sbin]

是否有人知道如何达到相同的目标(
self.model.add(Merge(models,mode='concat'))
)或如何使用Keras 2.0.0使用合并/合并层?
先谢谢你

我认为您从错误的位置导入。你应该做:

from keras.layers import Merge
有关
merge/merge
以及如何使用它们的更多详细信息,请参见此

同样,以下两段代码是等效的

Keras 1.2.2规范:

from keras.engine import merge
m = merge([init, x], mode='sum')
等效Keras 2.0.2规范:

from keras.layers import add
m = add([init, x])
在Keras 2.0.4中,“Merge”不起作用,但“Merge”可以,用法如下:

from keras.layers import merge
m = merge([x1, x2], mod="cos", dot_axes=1)
函数代码不是实现concat函数,而是获取余弦值,concat函数类似


但是Keras 2.2.4中的这段代码不起作用,它会抛出一个错误“'module'object is not callable”,这是由Keras版本引起的问题。

谢谢您的回答,但它有问题。这是错误/Users/pengjuzhao/anaconda/lib/python2.7/site packages/keras/legacy/layers.py:66:UserWarning:The
Merge
层已弃用,将于2017年8月后删除。改用
keras.layers.merge
中的层,例如
添加
连接
,等等。警告。警告(“
Merge
层已被弃用”
。合并层似乎已从Keras 2.0中删除。但是方法
Keras.layers.Merge.concat`不存在。您是否尝试过使用“Keras.layers.Merge.Concatenate”?那么Keras 2.2.4的解决方案是什么?@quant,对于Keras 2.2,您必须使用“Concatenate”,但新版本的Keras不支持使用顺序API进行连接,您必须使用函数API。请参阅: