基本数据类型
torch中所有的数据类型都为tensor(张量)
dim为维度,size为某一维的数量
创建tensor
从numpy中创建
torch.from_numpy()
从list中导入
torch.tensor(list)
uninitialized
Torch.empty()
Torch.FloatTensor(d1,d2,d3)
Torch.IntTensor(d1,d2,d3)
初始化
函数 | 作用 |
---|---|
torch.rand(shape) | 从0~1中初始化 |
torch.rand_like(t) | 输入一个tensor,生成相同维度的tensor |
torch.randint(min,max,(shape)) | 生成只含有整数的tensor |
torch.randn(shape) | 0~1之间正态分布 |
torch.full([shape],number) | 生成一个全为相同数的tensor |
torch.arrange(min,max,interval) | 生成等差数列的tensor |
torch.linspace(min,max,numberl) | 等分成number个数 |
torch.ones() | 全1 |
torch.zeros() | 全0 |
torch.eye() | 对角矩阵 |
torch.randperm.() | 返回一个0到n-1的数组 |
tensor维度变换
函数 | 作用 |
---|---|
torch.view() | 重构张量的维度 |
torch.reshape() | |
torch.squeeze(pos) | 主要对数据的维度进行压缩,去掉维数为1的的维度 |
torch.unsqueeze(pos) | 主要是对数据维度进行扩充,给指定位置加上维数为一的维度 |
torch.expand() | 返回tensor的一个新视图,单个维度扩大为更大的尺寸 |
torch.repeat() | 沿着特定的维度重复这个张量,和expand()不同的是,这个函数拷贝张量的数据(更改memory,不建议使用) |
torch.transpose() | 交换两个维度 |
torch.permute() | 将tensor的维度换位(permute相当于可以同时操作于tensor的若干维度,transpose只能同时作用于tensor的两个维度) |
torch.contiguous() | view只能作用在contiguous的variable上,如果在view之前调用了transpose、permute等,就需要调用contiguous()来返回一个contiguous copy |