python - 在 Tensorflow 中将张量与 None 轴连接

标签 python keras concatenation tensor

我将 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/

相关文章:

python - 如何在恒定长度内找到两个字符串的所有可能排列

python - Keras 模型的输出张量必须是 Keras `Layer` 的输出(因此保存过去层元数据)

java - 连接或合并字符串 (JAVA)

excel - 如何在Excel公式中连接相对字符数的字符串?

tensorflow - tensorflow 中 Masking() Keras 函数的等效性是什么?还有batch norm、conv、relu支持Masking吗?

python - sklearn管道ValueError : all the input array dimensions except for the concatenation axis must match exactly

python - 如何在 Python 中从 etc/sysconfig 中检索值

python - 从 Excel 中原子读取(用于 luigi 工作流程)

python - 打开具有命名范围的 Excel 文件时出现 xlrd 错误

python - TypeError : Dimension value must be integer or None or have an __index__ method, 得到了 TensorShape([None, 1])