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 快速排序代码
Nov 23 Python
深度定制Python的Flask框架开发环境的一些技巧总结
Jul 12 Python
python通过微信发送邮件实现电脑关机
Jun 20 Python
python2.x实现人民币转大写人民币
Jun 20 Python
Python Django框架实现应用添加logging日志操作示例
May 17 Python
python面试题Python2.x和Python3.x的区别
May 28 Python
python通过http下载文件的方法详解
Jul 26 Python
python 申请内存空间,用于创建多维数组的实例
Dec 02 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
Nov 24 Python
pycharm 的Structure界面设置操作
Feb 05 Python
Django中的DateTimeField和DateField实现
Feb 24 Python
python opencv检测直线 cv2.HoughLinesP的实现
Jun 18 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实现与ASP Banner组件相似的类
2006/10/09 PHP
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
php实现求相对时间函数
2015/06/15 PHP
PHP培训要多少钱
2017/06/06 PHP
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
微信小程序 开发指南详解
2016/09/27 Javascript
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
js中let能否完全替代IIFE
2019/06/15 Javascript
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
python合并多个excel文件的示例
2020/09/23 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
升职自荐书范文
2013/11/28 职场文书
高二学生评语大全
2014/04/25 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
工作自我评价范文
2019/03/21 职场文书
2019年员工旷工保证书!
2019/06/28 职场文书
话题作文之自信作文
2019/11/15 职场文书
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB