Tensorflow 将两层与Keras合并
我想使用concatenate将两个层与Keras合并。我使用的是tensorflow 1.12内置的keras函数。运行以下代码时,我得到错误: ValueError:应在包含2个输入的列表上调用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
点
层
问题是,您将两个模型传递给点层,而不是两个张量。您可以使用函数式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
。我将用正确的代码更新我的答案。