tf.concat的用法

最近在用inception结构,然后在网上查了一下tf.concat这个函数,发现中文的博客里面对他的标注是错了,可能是tensorflow更新了,所以就发了这个

首先看一下,tensorflow官网对tfconcat的函数的解释

concat(
    values,
    axis,
    name='concat'
)
这里只有value,axis函数,第一个参数就是你的输入,第二个参数就是你的维度,你从哪个维度上面合并
values=[D0, D1, ... Raxis, ...Dn],D0-Dn就是你要合并的输出

例子如下,注意格式和参数位置
t1 = [[1, 2, 3], [4, 5, 6]]  #这是一个2*3的矩阵
t2 = [[7, 8, 9], [10, 11, 12]]  #2*3
tf.concat([t1, t2], 0) ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
tf.concat([t1, t2], 1) ==> [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]
0在2维的矩阵是堆叠,1是合并相同维度的行,


下面是一个三维的数组,假设第一个是x,第二个是y
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]
 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]

[[[ 2  3  4  5]
  [ 6  7  8  9]
  [10 11 12 13]]
 [[14 15 16 17]
  [18 19 20 21]
  [22 23 24 25]]]
tf.concat([x,y],0)的结果是
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]

 [[ 2  3  4  5]
  [ 6  7  8  9]
  [10 11 12 13]]

 [[14 15 16 17]
  [18 19 20 21]
  [22 23 24 25]]]
从图像的角度理解,这是在图像维度上面的堆叠,[[]]是一个维度。

tf.concat([x,y],1)的结果
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]
  [ 2  3  4  5]
  [ 6  7  8  9]
  [10 11 12 13]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]
  [14 15 16 17]
  [18 19 20 21]
  [22 23 24 25]]]
这是在像素上的堆叠

tf.concat([x,y],2)的结果是
[[[ 0  1  2  3  2  3  4  5]
  [ 4  5  6  7  6  7  8  9]
  [ 8  9 10 11 10 11 12 13]]

 [[12 13 14 15 14 15 16 17]
  [16 17 18 19 18 19 20 21]
  [20 21 22 23 22 23 24 25]]]

这个是空间上的堆叠,从原来的两个2*3*4变成了2*3*8,相当于8维的空间


最后还有一个tf.concat([x,y],3)这个是通道数量的堆叠,比如2个卷积后的矩阵是35*35*60,那么堆叠后是35*35*120







  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值