学批量归一化时,关于x.mean(dim=0,keepdim=True)的一些问题

**

学批量归一化时,关于x.mean(dim=0,keepdim=True)的一些问题

**

人生的第一篇博客,记录下自己的进步

今天学了批量归一化里面的一些问题,其中x.mean(dim=0,keepdim=True)困扰了我,搞懂后记录下来
举例子:
x = [
[[1,2,3,4],[5,6,7,8],[9,10,11,12]],
[[13,14,15,16],[17,18,19,20],[21,22,23,24]]
]
x.shape=[2,3,4]

首先认识到:dim=0 ->2 dim=1 ->3 dim=2->4
x.mean(dim=0) -> tensor([[ 7., 8., 9., 10.], 解释:以列为单位,共三列,故这里有3行,每行里的元素如何计算的呢?
[11., 12., 13., 14.], 7=mean(1,13),8=mean(2,14),9=mean(3,15),10=mean(4,16),按列取均值
[15., 16., 17., 18.]])

x.mean(dim=1) -> tensor([[ 5., 6., 7., 8.], 解释:以行为单位,共两行,故这里有2行,里面的元素如何计算的呢?
[17., 18., 19., 20.]]) 5=mean(1,5,9),6=mean(2,6,10),7=mean(3,7,11),8=mean(4,8,12),按行对应
元素取均值
x.mean(dim=2) -> tensor([[ 2.5000, 6.5000, 10.5000], 解释:这里的元素,就是各自中括号里的4个元素的均值啦,2.5=mean(1,2,3,4)
[14.5000, 18.5000, 22.5000]])

接下来解释:x.mean(dim=0,keepdim=True)
keepdim=True 就是为了让维度不变
见证图片吧!
还是接着上面的例子:
x.mean(dim=0,keepdim=True) ->shape=[1,3,4]
x.mean(dim=0,keepdim=False) ->![shape=[3,4](https://img-blog.csdnimg.cn/20201213225227780.png

x.mean(dim=1,keepdim=True) ->shape=[2,1,4]
x.mean(dim=1,keepdim=False) ->shape=[2,4]

x.mean(dim=2,keepdim=True) ->shape=[2,3,1]
。。。。。。。。。。。。。。。。
这个就不放啦!!猜测就是shape=[2,3]
把True改为False后,维度就降了一维了;至于维度个数如何看,看第一个数字前面的中括号个数就行啦!!

前几天拿了个数模国三,和室友今天吃完火锅回到实验室看了这点小知识,记录下来,冲鸭!## 标题

PS:贴上代码自己运行下哈

import torch
x = torch.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]]
]).float()

print(x)
x.mean(dim=1,keepdim=True)
x.mean(dim=2,keepdim=True)
x.mean(dim=3,keepdim=True)



评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值