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 dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 Python
Python 自动刷博客浏览量实例代码
Jun 14 Python
Linux下python与C++使用dlib实现人脸检测
Jun 29 Python
对web.py设置favicon.ico的方法详解
Dec 04 Python
python 用opencv调用训练好的模型进行识别的方法
Dec 07 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
Python.append()与Python.expand()用法详解
Dec 18 Python
python 统计文件中的字符串数目示例
Dec 24 Python
Python3爬虫关于识别点触点选验证码的实例讲解
Jul 30 Python
django数据模型中null和blank的区别说明
Sep 02 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
Jan 06 Python
python 命令行传参方法总结
May 25 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
PHPMyAdmin 快速配置方法
2009/05/11 PHP
PHP Socket 编程
2010/04/09 PHP
php遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
CI框架中zip类应用示例
2014/06/17 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
php实现的顺序线性表示例
2019/05/04 PHP
node.js中的socket.io入门实例
2014/04/26 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
vue devtools的安装与使用教程
2018/08/08 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
Python调用C/C++动态链接库的方法详解
2014/07/22 Python
Python 基础之字符串string详解及实例
2017/04/01 Python
python实现电脑自动关机
2018/06/20 Python
python爬取微信公众号文章
2018/08/31 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
美国领先的家庭智能音响系统品牌:Sonos
2018/07/20 全球购物
三星英国官网:Samsung英国
2018/09/25 全球购物
学生自我鉴定模板
2013/12/30 职场文书
倡议书范文
2014/04/16 职场文书
纠纷协议书
2014/04/16 职场文书
活动主持人开场白
2015/05/28 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书
PHP正则表达式之RCEService回溯
2022/04/11 PHP