pytorch 之tensor的基础知识

一、 PyTorch中,Tensortensor

  • 首先,我们需要明确一下,torch.Tensor()是python,更明确地说,是默认张量类型torch.FloatTensor()的别名,torch.Tensor([1,2])会调用Tensor类的构造函数__init__,固定地生成单精度浮点类型的张量
>>> a=torch.Tensor([1,2])
>>> a.type()
'torch.FloatTensor' #生成单精度浮点类型的张量。
  • torch.tensor()仅仅是python函数:https://pytorch.org/docs/stable/torch.html
    #torch.tensor ,函数原型是:
torch.tensor(data, dtype=None, device=None, requires_grad=False)
  • 其中data可以是:list, tuple, NumPy ndarray, scalar和其他类型。
    torch.tensor会从data中的数据部分做拷贝(而不是直接引用),根据原始数据类型生成相应的torch.LongTensor、torch.FloatTensor和torch.DoubleTensor张量。
>>> a=torch.tensor([1,2])
>>> a.type()
'torch.LongTensor'
>>> a=torch.tensor([1.,2.])
>>> a.type()
'torch.FloatTensor'
>>> a=np.zeros(2,dtype=np.float64)
>>> a=torch.tensor(a)
>>> a.type()
'torch.DoubleTensor'
  • 在PyTorch中,Tensortensor都能用于生成新的张量:
>>> a=torch.Tensor([1,2])
>>> a
tensor([1., 2.])
>>> a=torch.tensor([1,2])
>>> a
tensor([1, 2])
>>> a=torch.tensor(1)
>>> a
tensor(1)
>>> a.type()
'torch.LongTensor'
>>> a=torch.Tensor(1) 
>>> a
tensor([0.])
>>> a.type()
'torch.FloatTensor'
>>> a=torch.Tensor(3) # 3因为是标量,所以作为size
>>> a
tensor([0., 0., 0.])
>>> a.type()
'torch.FloatTensor'
  • 可见,Tensor(1)1是标量,标量作为size
    传入的,Tensor(3)则生成的是size为3的单精度浮点型张量。把a=torch.Tensor(1)改成a=torch.Tensor([1]),a就是一个数值为1的张量了。
  • 一定要充分理解张量!对于我们理解构建计算图和自动求导,反向传播等应用有重要帮助。
    在PyTorch中,torch.Tensor类是存储和变换数据的重要工具,相比于Numpy,Tensor提供GPU计算和自动求梯度等更多功能,在深度学习中,我们经常需要对函数求梯度(gradient)。PyTorch提供的autograd包能够根据输入和前向传播过程自动构建计算图并执行反向传播

二、 Tensor几种形式

在这里插入图片描述
1、scalar 标量

在这里插入图片描述
2、vector 向量
如一个人有三个指标:身高体重性别 组成一个一个值的集合,一个向量
在这里插入图片描述
3、matrix 矩阵
很多个vector摞在一起,多维的一般计算的都是矩阵

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值