我将 2 个张量 x 和 y 与形状 (64,64,1) 和 (None,64,64,8) 连接起来
我收到此错误消息
ValueError:Concatenate
层需要具有匹配形状的输入(除了连接轴之外)。获得输入形状:[(64, 64, 1), (None, 64, 64, 8)]
请
x = Conv2D(8, (3, 3), activation='relu', padding='same')(x)
x = MaxPooling2D((2, 2), padding='same')(x)
#the shape of x is (None, 64, 64, 8)
#y is random generated bits tensor
y = tf.convert_to_tensor(np.random.choice([0, 1],(64,64,1)).astype(np.float32()))
z = Concatenate()([x,y],axis=0)
x = Conv2D(8, (3, 3), activation='relu', padding='same')(z)
最佳答案
该错误实际上非常清楚地说明了问题所在。您的代码中有两个错误,它们与形状中的 None 值无关。
第一个形状只有三个维度,而后者有四个维度。通过 reshape 它并在 axis=0 处添加 1 大小的尺寸来修复此问题。
更成问题的是第二个错误。最后的尺寸也不匹配。 1 不是 8。
通过生成具有正确形状的随机张量(1, 64, 64, 8)
,这两个问题都可以很容易地解决(尽管我不完全确定它应该完成什么?)。
关于python - 在 Tensorflow 中将张量与 None 轴连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56094005/