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
Tensorflow 将两层与Keras合并_Tensorflow_Keras - Fatal编程技术网

Tensorflow 将两层与Keras合并

Tensorflow 将两层与Keras合并,tensorflow,keras,Tensorflow,Keras,我想使用concatenate将两个层与Keras合并。我使用的是tensorflow 1.12内置的keras函数。运行以下代码时,我得到错误: ValueError:应在包含2个输入的列表上调用点层 问题是,您将两个模型传递给点层,而不是两个张量。您可以使用函数式API来定义具有两个输入的模型,然后使用点积: input_1 = Input(input_shape) input_2 = Input(input_shape) branch_1 = Dense(10)(input_1) bra

我想使用concatenate将两个层与Keras合并。我使用的是tensorflow 1.12内置的keras函数。运行以下代码时,我得到错误:

ValueError:应在包含2个输入的列表上调用


问题是,您将两个模型传递给点层,而不是两个张量。您可以使用函数式API来定义具有两个输入的模型,然后使用点积:

input_1 = Input(input_shape)
input_2 = Input(input_shape)

branch_1 = Dense(10)(input_1)
branch_2 = Dense(10)(input_2)

dot_product = Dot(axes=1)([branch_1, branch_2])

model = keras.models.Model(inputs=[input_1, input_2], outputs=dot_product)

问题是,您将两个模型传递给点层,而不是两个张量。您可以使用函数式API来定义具有两个输入的模型,然后使用点积:

input_1 = Input(input_shape)
input_2 = Input(input_shape)

branch_1 = Dense(10)(input_1)
branch_2 = Dense(10)(input_2)

dot_product = Dot(axes=1)([branch_1, branch_2])

model = keras.models.Model(inputs=[input_1, input_2], outputs=dot_product)

谢谢你的建议@AnnaKrogager!是否仍然可以使用顺序API来实现这一点?那么dot()函数的用途是什么?如果这个问题没有意义,我很抱歉,我是新手……根据定义,顺序模型是层的线性堆栈,因此对于分支,您必须使用函数API(正如您所看到的,这并不复杂)。
dot
函数只是
dot
层的一个接口。我尝试了@AnnaKrogager解决方案,但在最后一行中得到了以下错误:TypeError:“\u init\u subclased_network()得到了一个意外的关键字参数‘inputs’”,这是我的导入:“from tensorflow.keras.models导入模型”,因此我删除了“keras.models”在最后一行,我注意到我的答案中有一个字。它应该是
outputs
,而不是最后一行的
output
。我会用正确的代码更新我的答案。谢谢你的建议@AnnaKrogager!是否仍然可以使用顺序API来实现这一点?那么dot()函数的用途是什么?如果这个问题没有意义,我很抱歉,我是新手……根据定义,顺序模型是层的线性堆栈,因此对于分支,您必须使用函数API(正如您所看到的,这并不复杂)。
dot
函数只是
dot
层的一个接口。我尝试了@AnnaKrogager解决方案,但在最后一行中得到了以下错误:TypeError:“\u init\u subclased_network()得到了一个意外的关键字参数‘inputs’”,这是我的导入:“from tensorflow.keras.models导入模型”,因此我删除了“keras.models”在最后一行,我注意到我的答案中有一个字。它应该是
outputs
,而不是最后一行的
output
。我将用正确的代码更新我的答案。