PyTorch学习笔记(二)——Tensor

3 篇文章 0 订阅
3 篇文章 0 订阅

1、创建Tensor

函数功能
Tensor(*size)基础构造函数
ones(*size)全1
zeros(*size)全0
eye(*size)对角线为1,其他为0
arange(begin,end,step)从begin到end,步长为step
linspace(begin,end,steps)从begin到end,等间隔取steps个值
rand/randn均匀/标准分布
normal(mean,std)/uniform(from,to)正态/均匀分布
randperm(m)随机排列

NOTE: Tensor(*size)创建Tensor后不会马上分配空间,第一次用到时才会分配;其他操作都是创建完马上分配空间。


2、Tensor常用操作

用法功能备注
tensor.size()、tensor.shape形状
tensor.nelement()、tensor.numel()元素个数
tensor.view(size)调整形状参数为-1时自动计算大小
tensor.unsqueeze(dim)升维在dim维度处升高一维
tensor.squeeze(dim)降维只能压缩大小为1的维度,默认压缩所有大小为1的维度
tensor.resize_(*size)修改大小若缩小,原数据依然被保存;若扩大,开辟新空间

NOTE:view()unsqueeze()squeeze()这种只改变tensor的形状,而不涉及内存改变的函数,生成的新的Tensor和旧Tensor共享内存


3、索引操作

笔记
Tensor的索引操作与 numpy.ndarray类似。
x[0:1,:2]x[0,:2]应注意维度上的差别。
x[x>1]等价于 x.masked_select(x>1),新旧tensor不共享内存。
LongTensor类型可以用来做多列索引: x[2:4,t.LongTensor([0,3])]
gather(input,dim,index)函数: out[i][j][k]=input[i][index[i][j][k]][k] ,if dim=j
高级索引 ?
x[[1,2],[3,4],[5,6]] # x[1,3,5]和x[2,4,6]
x[[1,2,3],4,5] # x[1,4,5]、x[2,4,5]、x[3,4,5]
x[[0,4],...] = x[[0,4],:] # x[0]和x[4]

tensor幂运算的指数最大是9223372036854775807,别问我怎么知道的,我慢慢试出来的。
有可能配置不一样这个最大限度也不一样,但是我还是想记下来 ?


4、逐元素操作

这类函数作用在每个元素上,不改变tensor形状。
部分逐元素操作:

函数功能
abs/sqrt/div/fmod/pow/cos/sin/asin/atan2/conh等等
ceil/round/floor/trunc上取整、四舍五入、下取整、保留整数部分
clamp(min,max)超出min和max部分截断
sigmod/tanh激活函数

5、归并操作

作用于某一维度或者整个tensor。
常用归并操作:

函数功能
mean/sum/median/mode均值/和/中位数/众数
norm/dist范数/距离
std/var标准差/方差
cumsum/cumprod累加/累乘
NOTE:
1、这里应该注意dim参数的意义。
2、生成的size中是否有1,取决于keepdim参数.

6、线性代数

主要封装了Blas和Lapack

函数功能
trace/diag对角线元素之和/对角线元素
triu/tril矩阵的上/下三角
dot/cross内积/外积
inverse逆矩阵
svd奇异值分解
mm/bmm矩阵乘法/batch的矩阵乘法

NOTE: 矩阵转置后,会导致存储空间不连续。

   b = a.t()
   b.is_contiguous()  # False
   b.contiguous() # 将b的存储空间转为连续

7、持久化

持久化:t.save(obj,file)
加载文件: a = t.load(file)   # 也可以加载到CPU或其他GPU上

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

师大先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值