Pytorch tensor维度变化
时间:2021-08-20
本文章向大家介绍Pytorch tensor维度变化,主要包括Pytorch tensor维度变化使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
发现当我使用DataLoader加载数据的时候使用Module进行前向传播是可以的,但是如果仅仅是对一个img(三维)进行前项传播是不可以的。
RuntimeError: Expected 4-dimensional input for 4-dimensional weight [6, 3, 2, 2],
but got 3-dimensional input of size [3, 32, 32] instead
发现Dataloader有一个批处理,使得其一个tensor里面包含多个图片,tensor是四维的。
1.增加维度
a = torch.randn(2, 28, 28)
import torch
a = torch.randn(3, 32, 32)
print(a.shape)
print(a.unsqueeze(0).shape)
print(a.unsqueeze(1).shape)
print(a.unsqueeze(2).shape)
print(a.unsqueeze(3).shape)
print(a.unsqueeze(-1).shape)
print(a.unsqueeze(-2).shape)
print(a.unsqueeze(-3).shape)
print(a.unsqueeze(-4).shape)
print(a.unsqueeze(4).shape)
结果:
2. 删除维度
维度删除的功能并不能做到删除任意维度的数据,只能删除那些size为1的维度
import torch
a = torch.Tensor(1, 4, 1, 9)
print(a.shape)
print(a.squeeze().shape)
print(a.squeeze(0).shape))# 0号维度是1,因此能删除
print(a.squeeze(1).shape)# 1号维度是4,因此不能删除
print(a.squeeze(2).shape)
print(a.squeeze(3).shape)# 3号维度是9,因此不能删除
显示结果:
详细可见
原文地址:https://www.cnblogs.com/xvxing/p/15168093.html
- 【Python环境】Python可视化工具综述
- 【Spark研究】Spark编程指南(Python版)
- Java细粒度锁实现的3种方式
- 教你在Java接口中定义方法
- 【Spark研究】如何用 Spark 快速开发应用?
- 高性能Java解析器实现过程详解
- Java内存模型深度解读
- Java 实现线程死锁
- Java 四种线程池的用法分析
- 深入了解Java对象序列化
- 在Java EE7框架中使用MongoDB
- 用事实说话,成熟的ORM性能不是瓶颈,灵活性不是问题:EF5.0、PDF.NET5.0、Dapper原理分析与测试手记
- iPhone的Wi-Fi芯片漏洞利用POC公布,赶紧更新系统吧
- No.003 Longest Substring Without Repeating Characters
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CentOS6.9下NFS服务安装配置教程
- Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
- PHP 枚举类型的管理与设计知识点总结
- Linux静态链接库使用类模板的快速排序算法
- TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
- php post换行的方法
- apache实现部署多个网站(一个ip部署多域名)的方法详解
- windows7 32、64位下python爬虫框架scrapy环境的搭建方法
- python实现简单名片管理系统
- PHP7创建COOKIE和销毁COOKIE的实例方法
- PHP实现新型冠状病毒疫情实时图的实例
- 深入浅析Python2.x和3.x版本的主要区别
- 用户态进程如何得到虚拟地址对应的物理地址?
- Linux中利用grep命令如何检索文件内容详解
- laravel框架学习笔记之组件化开发实现方法