(此文为个人学习pytorch时的笔记,便于之后的查询)
Tensor基本操作
创建tensor:
1.numpy向量转tensor:
a=np.array([2,2,2])
b=torch.from_numpy(a)
2.列表转tensor:
a=torch.tensor([2,2])
b=torch.FloatTensor([2,2.])#不常用
c=torch.tensor([[1,2],[3,4]])#2*2矩阵
3.利用大写接受shape创建:
torch.empty(2,3)#生成一个2*3的0矩阵
torch.Tensor(2,3)#生成一个2*3的随机矩阵
torch.IntTensor(2,3)
torch.FloatTensor(2,3).type()
默认下,Tensor为‘torch.FloatTensor’类型,若要改为double类型的,则需要执行
torch.set_default_tensor_type(torch.DoubleTensor)来修改。
4.随机创建Tensor:
a=torch.rand(3,3)#创建3*3的0到1均匀分布的矩阵
a=torch.randn(3,3)#均值为0方差为1正态分布矩阵
torch.rand_like(a)#等价于下一条
torch.rand(a.shape)
torch.randint(1,10,[3,3])#创建3*3的1到10随机分布的整数矩阵
5.创建相同数的矩阵:
torch.full([3,3],1)#生成3*3的全为1的矩阵
torch.full([],1)#生成标量1
torch.full([2],1)#生成一个长度为2的值全为1的向量
torch.ones(3,3)
torch.zeros(3,3)
torch.eye(3,4)#生成对角为1矩阵,若不是对角矩阵,则多余出用0填充
torch.eye(3)#3*3对角矩阵
6.创建规律数列矩阵:
torch.arange(0,10)#生成[0,1,2,3,4,5,6,7,8,9]
torch.arange(0,10,2)#生成增量为2的数列
torch.arange(10)#效果同于(0,10)
torch.linspace(0,10,4)#生成[0.0000,3.3333,6,6667,10,0000]包括10的4等分向量
torch.logspace(0,-1,steps=10,base=10)#生成10个0到-1等分的数,再以其为指数,如第一个数#为1.000,最后一个数为0.100
7.创建随机打散数组:
torch.randperm(10)#生成0~9这10个数乱序的数组(常用作索引)
tensor的比较:
torch.eq(a,b)#