数据操作
生成张量
import torch
x=torch.arrange(12)#生成一维张量0-11
x.shape#关注张量的形状
x.reshape(3,4)#改变x的形状,但是不改变数值,变成3行4列
zeros=torch.zeros((2,3,4))#创建全零张量,形状是2x3x4
ones=torch.ones((1,2,3))#创建全一张量,形状是1x2x3
#这些是可以进行加减乘除的,对应元素进行运算
张量的一些处理
import torch
x=torch.randint(1,5,size=(2,3))
y=torch.randint(1,5,size=(2,3))
#拼接
z=torch.cat((x,y),dim=0)#按照零维来拼接,具体详见文档
z.sum#对z求和,产生标量
张量的广播机制
import torch
x=torch.ones((2,2))
y=torch.ones((1,1))
x+y#这里y会自动复制自己的维度使之和x相同,然后对应相加
元素的访问
import torch
x=torch.randint(1,11,size=(5,5))
x[2,3]#第3行第4列
x[1:1:1,]#[start:stop:step](前闭后开) 第一个逗号之前是0维,依次类推
元素赋值
import torch
x=torch.zeros((2,2))
x[1,1]=1
numpy和pytorch的转换
import torch
import numpy as npy
x=torch.zeros((2,2))
y=x.npy()
z=torch.tensor(y)