打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PyTorch(二)——张量基本概念与常用操作

张量(Tensor)

几何代数中定义的张量是基于向量和矩阵的推广,通俗一点来理解,我们可以将标量视为零阶张量,矢量视为一阶张量,那么矩阵就是二阶张量。

张量

在PyTorch中,张量Tensor是最基础的运算单位,与NumPy中的NDArray类似,张量表示的是一个多维矩阵。不同的是,PyTorch中的Tensor可以运行在GPU上,而NumPy的NDArray只能运行在CPU上。由于Tensor能在GPU上运行,因此大大加快了运算速度。

可以通过rand( )函数生成一个简单的张量,例如生成一个2行3列0-1的随机数Tensor。

torch.rand(2, 3)

通过shape属性或使用size( )函数可以查看Tensor的大小。

查看Tensor大小

在同构的意义下,我们设r为张量的秩或阶,那么,第零阶张量(r = 0)为标量,第一阶张量(r = 1)为向量,第二阶张量(r = 2)为矩阵,第三阶以上(r > 2)的统称为多维张量。

Tensor基本数据类型

Tensor的常用基本数据类型主要有以下五种:

  1. 32位浮点型:torch.FloatTensor。Tensor的默认数据类型。
  2. 64位浮点型:torch.DoubleTensor。
  3. 64位整型:torch.LongTensor。
  4. 32位整型:torch.IntTensor。
  5. 16位整:torch.ShortTensor。

此外,Tensor的数据类型还可以是byte或chart型。

Tensor基本数据类型

Tensor初始化

除了使用rand( )函数外,PyTorch中还提供了许多初始化张量的方法,可以类比NumPy中对NDArray的初始化。

randn( ):初始化一个均值为0,方差为1的随机数Tensor。

ones( ):初始化一个全为1的Tensor。

zeros( ):初始化一个全为0的Tensor。

eye( ):初始化一个主对角线为1,其余都为0的Tensor(只能是二阶,即矩阵)。

Tensor初始化

Tensor常用API

PyTorch对Tensor的操作与NumPy对NDArray的操作非常相似,因此在学习Tensor时可以经常对比NDArray。事实上,它们两者基本就是一致的。

max( )/min( ):沿行或列取最大值/最小值。参数dim=0表示沿列,dim=1表示沿行。返回value(值)和idx(索引)。

max()/min()

sum( ):沿行/列求和。

sum()

基本四则运算。

基本四则运算

add( )与add_( ):以_为结尾的会改变调用值本身。

add( )与add_( )

mm( ):矩阵乘法。

mm( )

PyTorch的Tensor与NumPy的NDArray转换

使用PyTorch的numpy( )函数将Tensor转换为NDArray。

Tensor转NDArray

使用PyTorch的from_numpy( )函数将NDArray转换为Tensor。

NDArray转Tensor

Tensor运行设备(GPU与CPU)转换

一般情况下可以使用cuda( )函数将Tensor转移到GPU上运行,当然这步操作需要cuda设备的支持。

将Tensor转移到GPU上运行

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Pytorch深度学习基础之Tensor
PyTorch学习系列教程:何为Tensor?
人工智能基础篇-数据处理
Pytorch入门演练
PyTorch 基础操作
教程 | 从头开始了解PyTorch的简单实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服