Pytorch—tensor相关运算

一、检查是否是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

猜你喜欢

转载自blog.csdn.net/weixin_54627824/article/details/127757995