Keras Minimum()导致AttributeError:'NoneType'对象没有属性'_inbound_nodes'

时间:2019-09-07 02:34:05

标签: python tensorflow keras neural-network keras-layer

这是怎么回事,如何正确使用Keras的Minimum()层?

start = Input(shape=(28,28,1), dtype='float32')
c = Conv2D(20,3,use_bias=False,data_format="channels_last",input_shape=(28, 28, 1),padding='same')(start)
c = Reshape((28,28,20,1))(c)
m = MaxPooling3D(pool_size=(1,1,20), strides=1, padding='valid', data_format="channels_last")(c)
m = Reshape((28,28,1))(m)
m = Minimum()([m,mask])
print(m.shape, mask.shape)
f = Flatten()(m)
print(f.shape)
out = Dense(10,activation='softmax')(f)
model = Model(inputs=start, outputs=out)

输出:

(60000, 28, 28, 1) (60000, 28, 28, 1)
(60000, 784)

AttributeError                            Traceback (most recent call last)
<ipython-input-21-e0fab99c12c2> in <module>()
      9 print(f.shape)
     10 out = Dense(10,activation='softmax')(f)
---> 11 model = Model(inputs=start, outputs=out)

AttributeError: 'NoneType' object has no attribute '_inbound_nodes'

keras API指出Minimum()为:

  

计算最小值(按元素计)的输入列表的层。

     

将所有形状相同的张量列表作为输入,   并返回单个张量(也具有相同的形状)。

所以看来我在正确使用它...但是我可能做的很愚蠢。

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。是我的错 我试图将mask传递给minimum(),但是mask是一个numpy数组,minimum()需要Keras Input()