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

 更新时间:2020年05月26日 17:29:22   作者:WJ_MeiMei  
这篇文章主要介绍了pytorch查看通道数 维数 尺寸大小方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

查看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)

从左至右起,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()

官方文档中的解释:

简单说,把原本的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设计模式编程中解释器模式的简单程序示例分享

    这篇文章主要介绍了Python设计模式编程中解释器模式的简单程序示例分享,解释器模式强调用抽象类来表达程序中将要实现的功能,需要的朋友可以参考下
    2016-03-03
  • Python中的getter和setter的方法使用详解

    Python中的getter和setter的方法使用详解

    基本上,在面向对象编程语言中,使用setter和getter方法的主要目的是为了确保数据的封装,这篇文章主要介绍了Python的getter和setter的方法使用详解,需要的朋友可以参考下
    2022-12-12
  • 使用Python实现将多表分批次从数据库导出到Excel

    使用Python实现将多表分批次从数据库导出到Excel

    这篇文章主要介绍了使用Python实现将多表分批次从数据库导出到Excel,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python实现微信公众平台自定义菜单实例

    Python实现微信公众平台自定义菜单实例

    这篇文章主要介绍了Python实现微信公众平台自定义菜单实例,本文直接给出实现代码,需要的朋友可以参考下
    2015-03-03
  • Python3 chardet模块查看编码格式的例子

    Python3 chardet模块查看编码格式的例子

    今天小编就为大家分享一篇Python3 chardet模块查看编码格式的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 对tensorflow 的模型保存和调用实例讲解

    对tensorflow 的模型保存和调用实例讲解

    今天小编就为大家分享一篇对tensorflow 的模型保存和调用实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • python3实现倒计时效果

    python3实现倒计时效果

    这篇文章主要为大家详细介绍了python3实现倒计时效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 浅谈Pandas Series 和 Numpy array中的相同点

    浅谈Pandas Series 和 Numpy array中的相同点

    今天小编就为大家分享一篇浅谈Pandas Series 和 Numpy array中的相同点,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python数据分析的八种处理缺失值方法详解

    Python数据分析的八种处理缺失值方法详解

    缺失值可能是数据科学中最不受欢迎的值,然而,它们总是在身边。忽略缺失值也是不合理的,因此我们需要找到有效且适当地处理它们的方法
    2021-11-11
  • Python中asyncio模块使用详解

    Python中asyncio模块使用详解

    Python中的asyncio模块提供了异步IO支持,通过协程和事件循环实现异步编程,使用装饰器@asyncio.coroutine可以定义协程,yield from语法用于调用其他协程并实现非阻塞等待,asyncio.sleep()模拟IO操作,通过并发执行多个协程提高程序性能
    2024-10-10

最新评论