• pytorch张量数据类型


    python常用数据类型在pytorch中的对应

    pythonPyTorch
    IntIntTensor of size()
    floatFloatTensor of size()
    Int arrayIntTensor of size [d1, d2,…]
    float arrayFloatTensor of size[d1, d2,…]
    string- -

    pytorch不是一个完备的语言库,而是一个面向数据计算的GPU加速库,对str字符类型没有直接支持的对应数据类型。

    在免不了要处理str的情况下,那要如何表达str呢
    	1、One-hot
    		[0,1,0,0,...]
    		如表达猫狗两类别
    	2、Embedding(NLP):
    		Word2vec
    		glove
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    torch常用内置数据类型

    在这里插入图片描述

    数据类型推断

    a为二维tensor数据,随机初始化两行三列数据
    a.type() 返回一个字符串告诉a,其tensor的类型
    type(a) 返回a的数据类型
    isinstance(a,某tensor数据类型) 参数合法化检验,如果a跟该tensor数据类型一致,返回True
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    注:CPU和GPU的tensor不是同一类型,可以使用.cuda(),a.cuda()可以返回一个gpu上的引用
    在这里插入图片描述

    标量

    标量是最简单的数据类型,dim为0
    在python中直接表示为1.0、1.3,pytorch中的表示为:

    torch.tensor(1.)
    torch.tensor(1.3)
    注:1.3是0维,但[1.3]是一维,长度为1的tensor
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    标量的shape:

    a = torch.tensor(2.2)
    a.shape 或者 a.size()
    # 因为a是一个标量,会返回一个空的list类型的size
    len(a.shape) 或者用 a.dim()
    # 结果都会返回0的大小
    
    • 1
    • 2
    • 3
    • 4
    • 5

    向量

    在torch中都统一称为张量

    dim = 1时

    torch.tensor([x1,x2,...])
    #dim=1,张量长度可以为1,2,。。。
    
    torch.FloatTensor(n)
    #随机生成长度为n的一维张量
    
    也可以从numpy引入
    先通过numpy方法生成长度为n的向量
    data = np.ones(n)
    再使用 torch.from_numpy(data)引入
    # 或者直接 torch.ones(2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述
    注: 主要用在 1、Bias,2、batch为1,dim为1.图片打平后的线性输入。

    dim = 2时

    随机初始化一个两行三列张量a
    a = torch.randn(2,3)
    
    a的尺寸:
    a.shape
    a.size()
    
    具体看某一维度大小
    a.shape[0] / a.shape[1]
    a.size(0) / a.size(1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    dim = 3时

    三维使用场景比较广泛,如 RNN语言处理
    假如有5句话,每句话10个单词,batch设置每次处理8个单词
    则输入为[8,5,10]

    a = torch.rand(1,2,3)
    # 生成三维张量
    a.shape
    a.[0] # ->(2,3)
    list(a.shape)
    #将a的尺寸格式转化为python通用列表
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    dim = 4时

    较广泛适用于图片数据处理,如CNN:[b, c, h, w]
    在这里插入图片描述

    在这里插入图片描述
    a.dim()查询维度为4
    a.numel()
    #a占有内存的数量,2328*28

  • 相关阅读:
    猿创征文|开源监控软件Zabbix6部署实战
    GPT-5技术突破预测:革新NLP的未来
    js实现将文本生成二维码(腾讯云cos)
    546、Zookeeper详细入门教程系列 -【Zookeeper内部原理】 2022.11.06
    2022北京国际养老产业展览会/北京养老展/养老用品展11月
    安装lap和cythonbbox
    【亲测】简易商城小程序源码-易优CMS后台
    clickhouse学习笔记04
    Oneid方案
    分享Word如何转PDF的方法,还不快来看看
  • 原文地址:https://blog.csdn.net/qq_52015311/article/details/133141338