Python 无轴Tensorflow中的串联张量

Python 无轴Tensorflow中的串联张量,python,keras,concatenation,tensor,Python,Keras,Concatenation,Tensor,我将两个张量x和y与形状(64,64,1)和(无,64,64,8)连接起来 我收到了这个错误信息 ValueError:A连接层需要输入匹配的形状,concat轴除外。获取输入形状:[(64,64,1),(无,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,

我将两个张量x和y与形状(64,64,1)和(无,64,64,8)连接起来

我收到了这个错误信息

ValueError:A
连接
层需要输入匹配的形状,concat轴除外。获取输入形状:[(64,64,1),(无,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)

这个错误实际上相当清楚地说明了什么是错误的。代码中有两个错误,它们与形状中的“无”值无关

  • 第一个形状只有三个维度,而后者有四个维度。通过重塑其形状并在轴=0处添加1尺寸标注来修复此问题

  • 更麻烦的是第二个错误。最后的尺寸标注也不匹配。1不是8


通过生成一个具有正确形状的随机张量(1,64,64,8)(虽然我不完全确定它应该完成什么?)可以很容易地解决这两个问题。

谢谢,但我将它改为y=tf。将_转换为_张量(np.random.choice([0,1],(1,64,64,8))。astype(np.float32())z=Concatenate()([x,y],axis=0)结果是。
串联
层要求输入具有匹配形状,但concat轴除外。获取输入形状:[(无,64,64,8),(1,64,64,8)]您确定没有更改任何其他内容吗?确保轴仍为0!是的,我肯定。我试着用tf.concat()代替