PyTorch中Tensor简介

PyTorch中所有的操作都是基于Tensor(张量)的,因此理解张量的含义并能够自由创建张量是十分必要的。

张量是PyTorch中最基本的操作对象。我们可以用数学中的概念来辅助理解一下张量,如图5-1所示。

  • 标量(Scalar)只具有数值大小,而没有方向,部分有正负之分,如1、2、3、-10。
  • 矢量(Vector)具有大小和方向,如(3,4)。
  • 矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,如[[1,2],[3,4]]。

标量、矢量、矩阵都属于张量,标量是零维张量,向量是一维张量,矩阵是二维张量。张量还可以是三维的、四维的等。

PyTorch的张量与NumPy中的ndarray类似,但是在PyTorch中,张量可以使用GPU进行计算以提高运算性能

5.1.2  使用特定数据创建张量

为了更好地理解张量中的矩阵,下面先介绍如何将现有的NumPy矩阵转换成张量中的矩阵。张量就是PyTorch中的一种矩阵形式,因此PyTorch中集成了将NumPy创建的矩阵数据转换成张量的方法torch.from_numpy(),示例代码如下:

import torch

import numpy as np

a = np.array([3.0, 4.0, 5.0])

b = torch.from_numpy(a)

print(b)

输出结果如下:

tensor([3., 4., 5.], dtype=torch.float64)

还可以直接输入数据创建,方法是torch.tensor(),输入数据并指定数据的类型(int/float/double) ,示例代码如下:

import torch
#直接输入数据创建
a = torch.tensor([[3, 4, 5],
                  [6, 7, 8]])
print(a)
print(a.type())   
#输入数据并指定数据类型创建
b = torch.FloatTensor([[3, 4, 5],
                       [6, 7, 8]])
print(b)
print(b.type())

输出结果如下:

tensor([[3, 4, 5],
        [6, 7, 8]])
torch.LongTensor
tensor([[3., 4., 5.],
        [6., 7., 8.]])
torch.FloatTensor

在一些实际应用中,可能会遇到全0矩阵、全1矩阵的情况,这时张量的创建采用torch.full方法创建,torch.full()方法接收参数为shape,x,输出一个shape大小的元素全为x的张量,相关代码如下:

import torch
a = torch.full((2,3),1)
print(a)
print(a.type())

输出结果如下:

tensor([[1, 1, 1],
        [1, 1, 1]])
torch.LongTensor

有些时候,可能会使用一些连续的数据,类似于等差序列。这时可以使用torch.arange()方法,它接收三个参数,前两个是边界值,后一个是步长(Step),输出边界值范围内步长的等差序列组成的它张量。

import torch
#torch.arange()方法创建
a = torch.arange(0,10,2)
print(a)
print(a.type())

输出结果如下:

tensor([0, 2, 4, 6, 8])
torch.LongTensor

《PyTorch深度学习与企业级项目实战(人工智能技术丛书)》(宋立桓,宋立林)【摘要 书评 试读】- 京东图书 (jd.com)

本文节选自《PyTorch深度学习与企业级项目实战》,获出版社和作者授权发布。

【赠书活动第5期】《PyTorch深度学习与企业级项目实战》-CSDN博客

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值