当前位置: 首页 > news >正文

PyTorch 维度变换-Tensor基本操作

以如下 tensor a 为例,展示常用的维度变换操作

>>> a = torch.rand(4,3,28,28)
>>> a.shape
torch.Size([4, 3, 28, 28])
  • view / reshape 两者功能完全相同: a.view(shape)

    >>> a.view(4,3,28*28)  		## a.view(4,3,28,28) 可恢复
    
  • squeeze / unsqueeze: a.unsqueeze(dim), a.squeeze(dim) 只能挤压 1 维度

    >>> a.unsqueeze(0).shape	## a.squeeze(0) 可恢复
    torch.Size([1, 4, 3, 28, 28])
    
  • transpose / permute:.t() 只能用于二维矩阵

    >>> a.transpose(0,1).shape    ## 两两交换:交换 0 1 维度
    torch.Size([3, 4, 28, 28])
    >>> a.permute(0,1,2,3).shape  ## 新置维度,非两两交换,更方便 
    torch.Size([4, 3, 28, 28])
    
  • expand / repeat 两者效果完全相同 expand 高效更推荐

    >>> a.unsqueeze(0).expand(2,4,3,28,28).shape  # 只能拓展 1 维度的
    torch.Size([2, 4, 3, 28, 28])
    >>> a.unsqueeze(0).repeat(2,1,1,1,1).shape    # 不是填目标维度,而是填每个维度的重复次数   
    torch.Size([2, 4, 3, 28, 28])
    
  • broadcasting 自动扩张:基于已有的小维度的值 自动 进行广播拓展
    在这里插入图片描述

    >>> b = a+torch.tensor(1) 
    >>> b.shape
    torch.Size([4, 3, 28, 28])
    

  • B站视频参考资料

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Web前端后端精通:深度解析与技能进阶
  • Vue进阶之Vue无代码可视化项目(四)
  • ArcGIS for js 4.x 加载图层
  • 部署LVS-DR群集
  • Pythone 程序打包成 exe
  • Java从入门到放弃
  • 公用nacos,实现只调用本机相应服务,不出现负载均衡到别人机器上
  • eNSP学习——配置前缀列表
  • python爬虫爬取豆瓣TOP250用csv文件
  • 【MySQL】函数
  • HTML静态网页成品作业(HTML+CSS)—— 美食湘菜介绍网页(5个页面)
  • 图形和插图软件Canvas X Pro 20 Build 914
  • Android面试题之说说系统的启动流程(总结)
  • Python 机器学习 基础 之 【实战案例】轮船人员获救预测实战
  • 常用的三种软件架构
  • “大数据应用场景”之隔壁老王(连载四)
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【剑指offer】让抽象问题具体化
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Vue官网教程学习过程中值得记录的一些事情
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 创建一个Struts2项目maven 方式
  • 将 Measurements 和 Units 应用到物理学
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 一些关于Rust在2019年的思考
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • ​力扣解法汇总946-验证栈序列
  • #Linux(帮助手册)
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (30)数组元素和与数字和的绝对差
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (C++)八皇后问题
  • (C++20) consteval立即函数
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (Python第六天)文件处理
  • (第27天)Oracle 数据泵转换分区表
  • (第一天)包装对象、作用域、创建对象
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (回溯) LeetCode 78. 子集
  • (四)React组件、useState、组件样式
  • (图)IntelliTrace Tools 跟踪云端程序
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (一)Neo4j下载安装以及初次使用
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .Net的C#语言取月份数值对应的MonthName值
  • @Mapper作用
  • @Transactional 参数详解
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429