pytorch查看通道数 维数 尺寸大小方式


Posted in Python onMay 26, 2020

查看tensor

x.shape # 尺寸
x.size() # 形状
x.ndim # 维数

例如

import torch
parser = argparse.ArgumentParser(description='PyTorch')
parser.add_argument('--img_w', default=144, type=int, metavar='imgw', help='img width')
parser.add_argument('--img_h', default=288, type=int, metavar='imgh', help='img height')
parser.add_argument('--batch-size', default=32, type=int,metavar='B', help='training batch size')
parser.add_argument('--test-batch', default=64, type=int, metavar='tb', help='testing batch size')
 
class net(nn.Module):
 def __init__(self, arch='resnet18'):
 super(net, self).__init__()
 model_ft = models.resnet50(pretrained=True)
 self.visible = model_ft
 
 def forward(self, x):
 print(x.shape)
 print(x.size())
 print(x.ndim)
 
 input = self.visible.conv1(x)
 
 print(input.shape)
 print(input.size())
 print(input.ndim)

pytorch查看通道数 维数 尺寸大小方式

从左至右起,32表示训练集batch_size大小,3是图像通道数,288是图像高度,144是图像宽度,图像尺寸 288*144,维度个数是4。很多博客在介绍论文时候,没有准确表达这些参数名称,往往出现张冠李戴,导致读者后续使用过程中被老师ma

经过标准resnet50第一层卷积后,结果是:32表示训练集batch_size大小,64是图像通道数,72是图像高度,36是图像宽度,图像尺寸72*36,维数是4

补充知识:pytorch中与维度/变换相关的几个函数

torch.size ()

先说torch.size()函数,因为后面的方法都会用这个方法看到变换后的矩阵的维度

通过该方法,可以查看当前Tensor的维度,用法也很简单:

>>>import torch
>>>a = torch.Tensor([[[1, 2, 3], [4, 5, 6]]])
>>>a.size()
torch.Size([1, 2, 3])

torch.view()

官方文档中的解释:

pytorch查看通道数 维数 尺寸大小方式

简单说,把原本的tensor尺寸,转变为你想要的尺寸,例如原尺寸为23,现在可以转为32或16等,但一定要保证等式成立,不能目标尺寸为33

此外,也可以设其中一个尺寸为-1,表示机器内部自己计算,但同时只能有一个为-1,用法如下:

>>> b=a.view(-1, 3, 2)
>>> b
tensor([[[1., 2.],
  [3., 4.],
  [5., 6.]]])
>>> b.size()
torch.Size([1, 3, 2])

torch.squeeze() / torch.unsqueeze()

torch.squeeze(n)函数表示压缩tensor中第n维为1的维数,比如下面第一个,b.squeeze(2).size(),原始的b为上面的torch.Size([1, 3, 2]),第二维是2≠1,所以不压缩,尺寸保持不变;而若b.squeeze(0).size(),则发现第一维为1,因此压缩为3x2的tensor

>>> b.squeeze(2).size()
torch.Size([1, 3, 2])
>>> b.squeeze(0).size()
torch.Size([3, 2])

相反的,torch.unsqueeze(n)则是在第n维增加一个维数=1,如下,表示在原始的b的第二维增加一维,则尺寸变为1 * 3 * 1 * 2

>>> b.unsqueeze(2).size()
torch.Size([1, 3, 1, 2])
>>> b.unsqueeze(2)
tensor([[[[1., 2.]],

  [[3., 4.]],

  [[5., 6.]]]])

torch.permute()

这个函数表示,将原始的tensor,按照自己期望的位置重新排序,例如原始tensor的第0、1、2维分别是1、3、2,那么当我执行permute(2, 0, 1),则将第三维放在最前,第一维放在中间,第二维放在最后,也就变成了2 * 1 * 3,注意这里表示的维数的index,而不是具体几维:

>>> b.permute(2, 0, 1).size()
torch.Size([2, 1, 3])
>>> b.permute(2, 0, 1)
tensor([[[1., 3., 5.]],

 [[2., 4., 6.]]])

暂时只想到这些,若有错误还请指正,或有其他相关函数,我也将持续更新。

以上这篇pytorch查看通道数 维数 尺寸大小方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python连接mysql并提交mysql事务示例
Mar 05 Python
Python实现的数据结构与算法之基本搜索详解
Apr 22 Python
在Python中处理时间之clock()方法的使用
May 22 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
Dec 20 Python
python实现TF-IDF算法解析
Jan 02 Python
pyspark 读取csv文件创建DataFrame的两种方法
Jun 07 Python
10分钟教你用Python实现微信自动回复功能
Nov 28 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
Feb 20 Python
关于pandas的离散化,面元划分详解
Nov 22 Python
python打印异常信息的两种实现方式
Dec 24 Python
解决reload(sys)后print失效的问题
Apr 25 Python
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
May 28 Python
Pytorch 使用 nii数据做输入数据的操作
May 26 #Python
python变量的作用域是什么
May 26 #Python
Python3 pywin32模块安装的详细步骤
May 26 #Python
什么是python的列表推导式
May 26 #Python
python中列表的含义及用法
May 26 #Python
初学者学习Python好还是Java好
May 26 #Python
python函数map()和partial()的知识点总结
May 26 #Python
You might like
php下MYSQL limit的优化
2008/01/10 PHP
PHP函数学习之PHP函数点评
2012/07/05 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
Mootools 1.2教程 定时器和哈希简介
2009/09/15 Javascript
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
关于递归运算的顺序测试代码
2011/11/30 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
vue过渡和animate.css结合使用详解
2017/06/14 Javascript
vue轮播图插件vue-awesome-swiper
2017/11/27 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
2018/02/28 Javascript
解决vue热替换失效的根本原因
2018/09/19 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
vue实现分页栏效果
2019/06/28 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
[01:51]2014DOTA2西雅图邀请赛 MVP 外卡赛black场间采访
2014/07/09 DOTA
Python实现程序的单一实例用法分析
2015/06/03 Python
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
python实现人脸识别代码
2017/11/08 Python
Python实现嵌套列表去重方法示例
2017/12/28 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
python+mysql实现教务管理系统
2019/02/20 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
表扬信格式
2014/01/12 职场文书
就业协议书怎么填
2014/09/15 职场文书
秋冬农业生产标语
2014/10/09 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
幽默导游词应该怎么写?
2019/08/26 职场文书