关于tensorflow中维度的问题

一直对TF中tensor的reduce操作涉及的axis(reduction_indices)计算一知半解,这里系统总结一下,避免继续走弯路:

1.本质上来说,reduce_xxx都是降维操作,沿某个axis进行降维,不管是求和还是取平均值,总之需要消灭这一维度。

2.默认axis值为none,也即是降为0维,变为一个数值了

3.假定Tensor T的维度dim = k,那么axis = k-1代表基于最里面的维度进行计算,axis = 0 代表基于最外层的维度进行计算

 

给出一个2*3*4的tensor。

[[[ 1 2 3 4]

[ 5 6 7 8]

[ 9 10 11 12]]

[[13 14 15 16]

[17 18 19 20]

[21 22 23 24]]]

如果计算tf.reduce_sum(tensor, axis=0),axis=0说明是按第一个维度(最外层的2)进行求和,也就是说把

[[ 1 2 3 4]

[ 5 6 7 8]

[ 9 10 11 12]

[[13 14 15 16]

[17 18 19 20]

[21 22 23 24]]相加,所以第一个维度(也就是2)抹去,求和结束得到的tensor是3*4(之前tensor是2*3*4),即:

[[1+13 2+14 3+15 4+16]

[5+17 6+18 7+19 8+20]

[9+21 10+22 11+23 12+24]]。

依次类推,如果axis=1,那么求和结果shape是2*4,即:

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

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

如果axis=2,那么求和结果shape是2*3,即:

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

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

 

转载于:https://www.cnblogs.com/punkcure/p/8418597.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值