《神经网络与PyTorch实战》——3.4.4 统计函数

举报
华章计算机 发表于 2019/06/05 20:15:36 2019/06/05
【摘要】 本书摘自《神经网络与PyTorch实战》——书中第3章,第3.4.4节,作者是肖智清。

3.4.4 统计函数

  本节介绍一些统计张量中所有元素的性质的函数。

  表3-2列出了torch.Tensor类的一些成员函数,它们可以根据张量中的所有元素计算统计量。除了kthvalue() 函数以外,对于其他所有成员,在调用时如果不提供任何参数,就会忽略张量的具体形状,而把所有元素看作一整个大列表,计算统计量,得到1个零维张量。成员函数kthvalue() 略有不同。kthvalue() 计算第大元素,需要传入的值,而且该函数返回一个长度为2的元组,元组里分别是元素的值和元素对应的指标(即原张量的第几个元素)。代码清单3-18给出了使用统计函数的例子。

表3-2 张量的部分统计函数

image.png

代码清单3-18 利用统计函数得到统计结果

     t = torch.arange(5)

     print ('各元素方差 = {}'.format(t.var())) # 2.5

     print ('各元素积 = {}'.format(t.prod())) # 0.

     print ('最大值 = {}'.format(t.max())) # 4.

     print ('中位数 = {}'.format(t.median())) # 2.

     print ('第2大值 = {}'.format(t.kthvalue(2))) # 1. 和 1.

  在调用表3-2中的成员函数时,还可以指定关键字参数dim,以对某个维度进行统计。在这种情况下,函数max()、min()、median() 和kthvalue() 都返回长度为2的元组,元组中的两个条目分别提供值和指标。代码清单3-19给出了对张量的某个维度进行统计的例子。

代码清单3-19 对某个维度进行统计

     t = torch.arange(12).reshape(2, 2, 3)

     print ('各元素方差 = {}'.format(t.var(dim=1)))

     print ('各元素积 = {}'.format(t.prod(dim=1)))

     print ('最大值 = {}'.format(t.max(dim=1)))

     print ('中位数 = {}'.format(t.median(dim=1)))

     print ('第2大值 = {}'.format(t.kthvalue(2, dim=1)))

  成员函数norm() 可以求张量的范数。这个函数有一个数值类型的参数。对于元素为image.png的张量,参数的值为p,则范数为image.png    。的默认值为2。

  另外,torch.Tensor还有两个成员方法cumsum() 和cumprod(),分别可以对指定的维度做累加和累乘。对于数据,累加后的结果为

,累乘后的结果是。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。