Pytorch个人心得-----Tensor基本使用
Posted bigdaddy1994
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pytorch个人心得-----Tensor基本使用相关的知识,希望对你有一定的参考价值。
最近在学习Pytorch,在这里分享一些心得,其实如果也是入门的朋友可以直接参考我的这一个系列,因为比较接地气。Pytorch的安装我们这里忽略,
毕竟也不是什么难事。这一讲我们大概说一下Pytorch的Tensor,就像numpy的ndarray(如果你有接触过numpy),Tensor是Pytorch里面的主要操作
的数据形式,中文叫做张量,就是维度大于2的量。比如矩阵是二维,向量是一维,而张量就是三维以上了。下面话不多说直接就着代码和注释来理解吧同学们:
import torch import numpy as np ‘‘‘ tensor 张量的一些操作 ‘‘‘ a = torch.empty(5,3) # 构造一个5*3的矩阵 并且不初始化 a = torch.rand(5,3) # 均匀分布 0-1 a = torch.randn(5,3) # 连续标准正态分布 期望为0 方差为1 a = torch.zeros(5,3) # 全为0的矩阵 a = torch.tensor([[1,2,3],[4,5,6],[7,8,9]], dtype=torch.int) # 可以直接使用python的list来进行初始化 b = a.new_ones(2,2) # b继承了a的元素属性类型 等 new_ + 各种其他初始化函数都可以变成一个这样的函数 b = torch.rand_like(a,dtype=torch.float) # _like 继承形状 ‘‘‘ tensor 和 numpy之间的一些联系 ‘‘‘ a = torch.eye(5,dtype=torch.int32) b = a.numpy() c = torch.from_numpy(b) b += 1 # b + 1 操作之后会发现三个变量a b c全都变化了 说明其实她们公用的一块内存 以后操作时应该警惕 ‘‘‘ tensor 的一些变化操作 ‘‘‘ a = torch.rand(4,4) b = a.view(-1,2) # view操作重整tensor的形状 -1是默认值的意思 计算机会根据2算出-1的地方应该是8(因为a有16个元素) c = torch.ones_like(a) d = a + c # 基本运算有 + - * / **k d = torch.add(a,c) d = torch.empty_like(a) d = torch.add(a,c,out=d) c.add_(a) # 这个比较特殊 是 把 a 加给 c ‘‘‘ 对tensor简单的切片处理 ‘‘‘ a = torch.tensor([[[1,2,3],[4,5,6],[7,8,9]],[[1,2,3],[1,2,3],[1,2,3]],[[1,2,3],[1,2,3],[1,2,3]]]) #定义一个三维张量 b = a[:,:,1] # 这个该怎么理解呢 就是 消除第三层的中括号 怎么消除呢 就要把 第三层每个里面index为1的挑出来变成个序列 print(a.size()) print(a) print(b)
以上是关于Pytorch个人心得-----Tensor基本使用的主要内容,如果未能解决你的问题,请参考以下文章