我正在尝试按照blog建立自己的模型,以使其适应2输入2输出模型。
但是,当我尝试使用Keras Functional API(使用tensorflow后端)构建模型
inputV = Conv2D(32,(3,3),padding="same",input_shape = (96,96,3),name='Input of Visible Task')
inputH = Conv2D(32,(3,3),padding="same",input_shape = (96,96,3),name='Input of Hidden Task')
hiddenLayer = Activation("relu")
outputV = hiddenLayer(inputV)
outputH = hiddenLayer(inputH)
错误提示为
Layer activation_1 was called with an input that isn't a symbolic tensor. Received type: <class 'keras.layers.convolutional.Conv2D'>. Full input: [<keras.layers.convolutional.Conv2D object at 0x000001CF1211D6D8>]. All inputs to the layer should be tensors.
但是当我尝试
inputV = Conv2D(32,(3,3),padding="same",input_shape = (96,96,3)
activation='relu',name='Input of Visible Task')
一切都很好。
为什么当我尝试分别激活时,它不起作用?
答案 0 :(得分:0)
Keras功能API通过链接输入流来工作,例如:
inp = Input(shape=(...))
x = Conv2D(...)(inp)
x = Activation(...)(x)
x = Conv2D(...)(x)
mymodel = Model(inp, x)
这显然不会运行,但是您能看到我如何将x
变量从输出链接到下一层的输入吗?在构建模型时,Keras将跟踪此流程。
现在,您的代码中存在几个问题。
1.使用功能性API,您的模型应从tf.keras.Input()开始!
2.您缺少数据链。
3.您缺少模型构建部分(mymodel
部分)