使用tf.stack堆叠三个数组后,数组的形状不正确

时间:2018-05-17 09:18:47

标签: python tensorflow

我正在尝试将数组连接在一起。这是我的尝试:

rgb = tf.placeholder(tf.float32, [None, 672, 672, 3])
r, g, b = tf.split(rgb, 3, 3)
bgr = tf.stack(
    [
        b-23.5,
        g-30.6,
        r-40.1
    ],3)

print "rgb :", rgb
print "r :",r 
print "bgr :", bgr

但是,bgr的形状不正确。而不是(?, 672, 672, 3, 1)我想要与rgb相同的形状,即(?, 672, 672, 3)

rgb : Tensor("mul:0", shape=(?, 672, 672, 3), dtype=float32)
r : Tensor("split:0", shape=(?, 672, 672, 1), dtype=float32)
bgr : Tensor("stack:0", shape=(?, 672, 672, 3, 1), dtype=float32)

1 个答案:

答案 0 :(得分:2)

尝试{{3}}

bgr = tf.concat([b-23.5,
                 g-30.6,
                 r-40.1], axis=3)

它在维度axis上连接张量列表而不引入新维度。要连接的张量应该具有相同的形状,除了它们连接在一起的维axis

相关问题