一、获得张量元素的个数
import torch
a=torch.Tensor(2)
print(torch.numel(a))
二、torch.tensor() 与torch.Tensor()的区别
import torch
import numpy as np
#torch.tensor() 将数字、列表、numpy.ndarray转成张量形式
a=torch.tensor([4,5])
print(a) #tensor([4, 5])
an=np.asarray([4,5])
print(torch.tensor(an)) #tensor([4, 5], dtype=torch.int32)
#torch.Tensor()根据指定形状、类型生成张量
dim0,dim1,dim2=2,1,3
print(torch.Tensor(dim0,dim1,dim2)) #根据形状生成张量 tensor([[[0., 0., 0.]],[[0., 0., 0.]]])
print(torch.Tensor([[1,3],[2,4]])) #根据内容生成张量 tensor([[1., 3.],[2., 4.]])
三、随机张量生成
1.设置随机种子
import torch
torch.manual_seed(42) #设置随机种子
torch.initial_seed() #查看随机种子
2.指定形状生成随机值
torch.randn(2,3) #2*3维度的张量
3.生成线性空间的随机值
print(torch.arange(1,10,step=2) # 范围1 ~10,步长为2进行取值
print(torch.linspace(1,9,steps=5) #范围1~9,均匀取5个值
4.生成未初始化的矩阵
print(torch.empty(1,2)
四、张量与Numpy转换
import numpy as np
a=tensor(5)
print(a.numpy()) #张量转numpy对象
#numpy转成张量
anp=np.asarray([4,5)
print(torch.tensor(anp) #第一种
print(torch.from_numpy(anp)) #第二种
注意
书本上说,Numpy转换成张量时,只是简单的指针赋值,并不会复制,所以是共享内存。
但我在实际操作时,发现其实内存不一样,两个任何一个改变不会对另一个产生影响。