深度实践OpenStack:基于Python的OpenStack组件开发—3.2.2 构造特定大小的张量

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

3.2.2 构造特定大小的张量

  本节介绍如何利用torch.zeros()、torch.zeros_like()、torch.ones()、torch.ones_like()、torch.full()、torch.full_like()、torch.empty()、torch.empty_like()、torch.eye() 这些函数构造给定大小的张量。

  torch.zeros() 函数、torch.ones() 函数和torch.empty() 函数可以使用多个int类型的参数来构造给定类型的张量。要想用这些函数构造维张量,就要传入个整数。这个整数就是张量大小的个条目。用这种方法构造张量,可以不指定张量中元素的值,也可以指定张量中元素的值为相同值。如果不指定张量中元素的值,可以用torch.empty() 函数,这样构造出来的张量的元素值是不确定的。如果要指定张量中元素的值,可以用torch.zeros() 函数、torch.ones() 函数,它们分别指定代码中的元素均为0或1。如果要将元素初始化为0和1以外的值,则可以用torch.full() 函数。torch.full() 函数的用法和torch.zeros() 函数和torch.ones() 函数略有不同,它需要使用两个不同的参数,分别输入张量大小和要填充的值。代码清单3-4给出了一些利用int参数构造tensor.Tensor类实例的例子。

代码清单3-4 使用多个int数值构造tensor.Tensor类实例

     t1 = torch.empty(2) # 未初始化

     t2 = torch.zeros(2, 2) # 各元素值为0

     t3 = torch.ones(2, 2, 2) # 各元素值为1

     t4 = torch.full((2, 2, 2, 2), 3.) # 各元素值为3

  torch.empty() 函数、torch.zeros() 函数、torch.ones() 函数和torch.full() 函数都有对应的torch.*_like() 形式,以构造一个和现有张量一样大小的张量。例如,下列代码就构造了一个和张量t2大小一样的张量:

     torch.ones_like(t2)

  这些函数都可以使用关键字参数dtype指定张量的元素类型。


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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