深度实践OpenStack:基于Python的OpenStack组件开发—3.4.4 统计函数

举报
华章计算机 发表于 2019/06/01 23:36:14 2019/06/01
【摘要】 本书摘自《深度实践OpenStack》,作者是喻涛,田亮,张家龙,赵利军,李飞。

3.4.4 统计函数

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

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

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

torch.Tensor类成员

统计量

无参数时的行为

有参数dim时的返回值

mean()

平均值

仅返回值

仅返回值

sum()

总和

仅返回值

仅返回值

std()

标准差

仅返回值

仅返回值

var()

方差

仅返回值

仅返回值

prod()

仅返回值

仅返回值

max()

最大值

仅返回值

可用argmax() 得到取得最大值的指标

同时返回值和指标

min()

最小值

仅返回值

可用argmin() 得到取得最小值的指标

同时返回值和指标

median()

中位数

仅返回值

同时返回值和指标

kthvalue()

第大值

同时返回值和指标

同时返回值和指标

norm()

范数

仅返回值

仅返回值

代码清单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() 可以求张量的范数。这个函数有一个数值类型的参数。对于元素为

的张量,参数的值为,则范数为。的默认值为2。

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

,累乘后的结果是。


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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