码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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

  • 相关阅读:
    【毕业设计】深度学习+opencv+python实现昆虫识别 -图像识别 昆虫识别
    2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务(四)
    JavaScript - 手写call、apply和bind函数
    解决eclipse中的Java文件,使用idea打开的乱码问题
    web前端期末大作业:基于HTML+CSS+JS外卖服务平台10页 带购物车 (web课程设计与实现)
    机器人路径规划:基于Q-learning算法的移动机器人路径规划,可以自定义地图,修改起始点,提供MATLAB代码
    在mybatis-plus项目中自带要编写sql语句,@select注解的使用
    简要解析盒子模型
    huawei services HK华为云服务
    深度学习之环境配置 jupyter notebook
  • 原文地址:https://blog.csdn.net/qq_52015311/article/details/133141338
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号