pytorch(一)--张量创建汇总

一,张量(Tensor)
pytorch(一)--张量创建汇总_第1张图片所谓张量,其实就是一个多维数组,它是标量,向量,矩阵的高维拓展。

二,Tensor 与 Variable
Variable 是 torch.autograd 中的数据类型,主要用于封装Tensor,进行自动求导。如下图
pytorch(一)--张量创建汇总_第2张图片data: 被包装的Tensor
grad: data的梯度
grad_fn: 创建Tensor的Function,是自动求导的关键
requires_grad: 指示是否需要梯度
is_leaf: 指示是否为叶子结点

但是从Pytorch0.4.0开始,Variable并入Tensor里,变成下图
pytorch(一)--张量创建汇总_第3张图片
dtype: 张量数据类型,如torch.FloatTensor, torch.cuda.FloatTensor(这个张量指在GPU上运行)
shape: 张量的形状
deviece: 张量所在设备(CP或GPU),决定张量是否加速

三,张量的创建
1,直接创建
pytorch(一)--张量创建汇总_第4张图片这里举个例子,创建一个tensor
pytorch(一)--张量创建汇总_第5张图片运行后结果:
pytorch(一)--张量创建汇总_第6张图片
2,从一个Numpy数组来创建张量
pytorch(一)--张量创建汇总_第7张图片举一个例子
pytorch(一)--张量创建汇总_第8张图片代码运行完,你会发现由于共享内存,Nump数组的改变,会引起tensor的改变。同样,tensor改变也会引起numpy改变。

3,依据数值创建Numpy数组
pytorch(一)--张量创建汇总_第9张图片可能看完,感觉out有点难理解,下面举个例子
pytorch(一)--张量创建汇总_第10张图片运行后:
pytorch(一)--张量创建汇总_第11张图片发现两个的地址是一样的,即t被赋给了out

除此之外,依据数值创建的还有
pytorch(一)--张量创建汇总_第12张图片pytorch(一)--张量创建汇总_第13张图片pytorch(一)--张量创建汇总_第14张图片pytorch(一)--张量创建汇总_第15张图片pytorch(一)--张量创建汇总_第16张图片pytorch(一)--张量创建汇总_第17张图片pytorch(一)--张量创建汇总_第18张图片

4,依概率分布创建张量
pytorch(一)--张量创建汇总_第19张图片pytorch(一)--张量创建汇总_第20张图片pytorch(一)--张量创建汇总_第21张图片pytorch(一)--张量创建汇总_第22张图片

你可能感兴趣的:(Pytorch,深度学习,pytorch)