TensorFlow基础函数tf.concat的用法

Posted raintungli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TensorFlow基础函数tf.concat的用法相关的知识,希望对你有一定的参考价值。

tf.concat 的用法

TF官方的文档

tf.concat(
    values,
    axis,
    name='concat'
)

连接多个Tensor的操作
values 多个Tensor
axis是哪个纬度
0 代表第一纬度
1 代表第二纬度
2 代表第三纬度
n 代表第n+1纬度

案例:

    t1 = [[[1, 2, 3], [4, 5, 6]],[[7, 8, 9], [10, 11, 12]]]
    t2 = [[[12, 13, 14], [15,16, 17]],[[18, 19, 20], [21, 22, 23]]]
    t4 = [[[24, 25, 26], [27,28, 29]],[[30, 31, 32], [33, 34, 35]]]
    sess = tf.InteractiveSession()
    t3 = tf.concat([t1, t2, t4], 1)

结果:
[[[ 1 2 3]
[ 4 5 6]
[12 13 14]
[15 16 17]
[24 25 26]
[27 28 29]]

[[ 7 8 9]
[10 11 12]
[18 19 20]
[21 22 23]
[30 31 32]
[33 34 35]]]

    t1 = [[[1, 2, 3], [4, 5, 6]],[[7, 8, 9], [10, 11, 12]]]
    t2 = [[[12, 13, 14], [15,16, 17]],[[18, 19, 20], [21, 22, 23]]]
    t4 = [[[24, 25, 26], [27,28, 29]],[[30, 31, 32], [33, 34, 35]]]
    sess = tf.InteractiveSession()
    t3 = tf.concat([t1, t2, t4], 2)

结果
[[[ 1 2 3 12 13 14 24 25 26]
[ 4 5 6 15 16 17 27 28 29]]

[[ 7 8 9 18 19 20 30 31 32]
[10 11 12 21 22 23 33 34 35]]]

当纬度不能匹配的时候,会出现异常。比如说一纬张量 vector

 t4 = [1,2,3,4]
    t5 = [5,6,7,8]
    t6 = tf.concat([t4, t5],1)
    print sess.run(t6)

Shape must be at least rank 2 but is rank 1 for ‘concat_2’ (op: ‘ConcatV2’) with input shapes: [4], [4], [] and with computed input tensors: input[2] = <1>.

以上是关于TensorFlow基础函数tf.concat的用法的主要内容,如果未能解决你的问题,请参考以下文章

TensorFlow tf.concat

tensorflow-tf.concat

TensorFlow tensor张量拼接concat & stack

调用tensorflow中的concat方法时Expected int32, got list containing Tensors of type '_Message' instea

tf.concat 不同长度的张量

tf.concat()