一、检查是否是tensor对象
torch.is_tensor(x)
二、构造一行两列的随机数
y = torch.rand(1,2)
三、张量有几个元素
torch.numel(y)
四、创建全0的tensor
z = torch.zeros(3,3)
五、创建对角线为1的tensor
torch.eye(3,3)
六、将numpy转换为tensor
import numpy as np
x = np.array([3,4,5,6,7])
torch.from_numpy(x)
七、切分 linspace,steps表示切分的份额数
torch.linspace(2,10,steps=5)
八、均匀分布,值在0和1之间
torch.rand(10)
九、正态分布,均值为0,方差为1
torch.randn(10)
十、选择随机数,顺序打乱
torch.randperm(10)
十一、生成一个区间的数,(10,30),5步长,不包含30
torch.arange(10,30,5)
十二、获取行或列的最小值和最大值的索引
x = torch.randint(1,99,(3,3))
# dim为1表示行,0表示列
torch.argmin(x,dim=0)
torch.argmax(x,dim=0)
十三、连接
x = torch.randint(1,10,(2,3))
# 竖轴连接
torch.cat((x,x))
# 横轴连接
torch.cat((x,x),dim=1) #1是横轴
十四、切块 chunk
a = torch.randint(1,10,(3,3))
torch.chunk(a,2,0) #0表示横向切一刀,1表示纵向切一刀
torch.chunk(a,2,1)
十五、index_select 根据索引选择
x = torch.randn(4,4)
indices = torch.tensor([0,2]) # 下标选择0和2
torch.index_select(x,0,indices) # 横向0行和2行
十六、split 风格
x = torch.tensor([1,2,3,4,5,6,7])
torch.split(x,3) # 切割三个一份
十七、转置.t和.transpose
x = torch.tensor([[1,2],[3,4]])
x.t() === x.transpose(1,0) #效果一致
十八、tensor运算
x = torch.tensor([[1,2],[3,4]])
torch.add(x,1) #整体加一
torch.mul(x,2) #整体乘2