mean()函数的参数:dim=0,按列求平均值,返回的形状是(1,列数);dim=1,按行求平均值,返回的形状是(行数,1),默认不设置dim的时候,返回的是所有元素的平均值。

x=torch.arange(12).view(4,3)
'''
注意:在这里使用的时候转一下类型,否则会报RuntimeError: Can only calculate the mean of floating types. Got Long instead.的错误。
查看了一下x元素类型是torch.int64,根据提示添加一句x=x.float()转为tensor.float32就行
'''
x=x.float()
x_mean=torch.mean(x)
x_mean0=torch.mean(x,dim=0,keepdim=True)
x_mean1=torch.mean(x,dim=1,keepdim=True)
print('x:')
print(x)
print('x_mean0:')
print(x_mean0)
print('x_mean1:')
print(x_mean1)
print('x_mean:')
print(x_mean)

查看了一下x元素类型是torch.int64,根据提示添加一句x=x.float()转为tensor.float32就行
输出结果:

x:
tensor([[ 0.,  1.,  2.],[ 3.,  4.,  5.],[ 6.,  7.,  8.],[ 9., 10., 11.]])
x_mean0:
tensor([[4.5000, 5.5000, 6.5000]])
x_mean1:
tensor([[ 1.],[ 4.],[ 7.],[10.]])
x_mean:
tensor(5.5000)

torch.mean().mean()

x=torch.arange(24).view(4,3,2)
x=x.float()
x_mean=torch.mean(x)
print(x)
print(x.mean())
print(x.mean(dim=0,keepdim=True).mean(dim=1,keepdim=True).mean(dim=2,keepdim=True))
print(x.mean(dim=1,keepdim=True).mean(dim=2,keepdim=True))

输出:

tensor([[[ 0.,  1.],[ 2.,  3.],[ 4.,  5.]],[[ 6.,  7.],[ 8.,  9.],[10., 11.]],[[12., 13.],[14., 15.],[16., 17.]],[[18., 19.],[20., 21.],[22., 23.]]])
tensor(11.5000)
tensor([[[11.5000]]])
tensor([[[ 2.5000]],[[ 8.5000]],[[14.5000]],[[20.5000]]])

torch.mean()和torch.mean(dim=0).mean(dim=1)的区别

以二维为例:torch.mean()返回的是一个标量,而torch.mean(dim=0).mean(dim=1)返回的是一个1行1列的张量,虽然数值相同

x=torch.arange(12).view(4,3)
x=x.float()
x_mean=torch.mean(x)
print(x_mean)
y= x.mean(dim=0, keepdim=True).mean(dim=1, keepdim=True)
print(y)

输出:

tensor(5.5000)
tensor([[5.5000]])

torch.mean()相关推荐

  1. Pyinstaller 打包 torch 后执行失败 OSError: could not get source code

    1. 问题现象 系统环境 Python 3.6.9 torch 1.2.0 torchvision 0.4.0 Pyinstaller 4.5.1 Pyinstaller 打包 torch 后执行失败 ...

  2. torch.nn.functional.cross_entropy.ignore_index

    ignore_index表示计算交叉熵时,自动忽略的标签值,example: import torch import torch.nn.functional as F pred = [] pred.a ...

  3. torch.backends.cudnn.deterministic 使用cuda保证每次结果一样

    为什么使用相同的网络结构,跑出来的效果完全不同,用的学习率,迭代次数,batch size 都是一样?固定随机数种子是非常重要的.但是如果你使用的是PyTorch等框架,还要看一下框架的种子是否固定了 ...

  4. PyTorch的torch.cat

    字面理解:torch.cat是将两个张量(tensor)拼接在一起,cat是concatnate的意思,即拼接,联系在一起. 例子理解 import torch A=torch.ones(2,3) # ...

  5. pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

  6. PyTorch里面的torch.nn.Parameter()

    在刷官方Tutorial的时候发现了一个用法self.v = torch.nn.Parameter(torch.FloatTensor(hidden_size)),看了官方教程里面的解释也是云里雾里, ...

  7. PyTorch官方中文文档:torch.optim 优化器参数

    内容预览: step(closure) 进行单次优化 (参数更新). 参数: closure (callable) –...~ 参数: params (iterable) – 待优化参数的iterab ...

  8. torch中的copy()和clone()

    torch中的copy()和clone() 1.torch中的copy()和clone() y = torch.Tensor(2,2):copy(x) --- 1 修改y并不改变原来的x y = x: ...

  9. torch.nn.Embedding理解

    Pytorch官网的解释是:一个保存了固定字典和大小的简单查找表.这个模块常用来保存词嵌入和用下标检索它们.模块的输入是一个下标的列表,输出是对应的词嵌入. torch.nn.Embedding(nu ...

  10. torch.nn.Linear()函数的理解

    import torch x = torch.randn(128, 20) # 输入的维度是(128,20) m = torch.nn.Linear(20, 30) # 20,30是指维度 outpu ...

最新文章

  1. python项目归纳总结-【第108期】总结最近项目中常用的几个Python库
  2. bzoj 5340: [Ctsc2018]假面
  3. Kubernetes 1.6新特性
  4. element-ui Notification重叠问题,原因及解决办法
  5. 【正睿2021寒假省选第二轮集训 day 1】串 (后缀自动机+记忆化)
  6. 潜水员(信息学奥赛一本通-T1271)
  7. 嵌入式Linux系统编程学习之九基于文件描述符的文件操作
  8. FastCGI介绍(快速通用网关接口)
  9. 百度文库的几种下载方法
  10. 项目实施计划及总体设计报告(大纲)
  11. Python爬取2万条微博热搜,带你揭开热搜趋势!
  12. 嵌入式编程经典书籍推荐
  13. Linux笔记(70)——文件描述符之ulimit命令
  14. 多彩绚丽渐变Mac动态壁纸
  15. CCNA 2网络设备总结
  16. NAS(网络附属存储)、SAN和NAS存储有什么区别
  17. python+mysql+基于python的学生成绩管理系统 毕业设计-附源码071143
  18. 如何在程序中打开.mp3, .exe, .chm文件? ---介绍一下ShellExecute的用途
  19. 学习java需要英语很好吗?
  20. Odoo 的css文件中,如何设置列宽

热门文章

  1. Java网络 1.17 CSS3 选择器
  2. WebView加载网页错误回调
  3. 小说阅读器-阅读界面文字处理
  4. 神州数码DCWS-6028命令总结(二)
  5. python画奥运五环代码_Python绘制奥运五环
  6. HTML添加背景图片
  7. 经验总结:选课系统和自主招生系统开发总结
  8. mipush的receiver无法获得消息,断点也失效,原因很奇葩strings.xml缺少内容
  9. JS 利用promise封装setTimeout So easy
  10. 《视觉SLAM十四讲 第二版》笔记及课后习题(第十二讲)