深度实践OpenStack:基于Python的OpenStack组件开发—3.2.2 构造特定大小的张量
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指定张量的元素类型。
- 点赞
- 收藏
- 关注作者
评论(0)