PyTorch基础(13)-- torch

  • Note:unfold方法的输入只能是4维的,即(N,C,H,W)
二、如何计算输出的size
  • 栗子

import torch

import torch.nn as nn

if name == ‘main’:

x = torch.randn(2, 3, 5, 5)

print(x)

unfold = nn.Unfold(2)

y = unfold(x)

print(y.size())

print(y)

  • 运行结果

torch.Size([2, 12, 16])

接下来,我们一步一步分析这个结果是怎么计算出来的!

首先,要知道的是,我们的输入必须是4维的,即(B,C,H,W),其中,B表示Batch size;C代表通道数;H代表feature map的高;W表示feature map的宽。首先,我们假设经过Unfolder处理之后的size为(B,h,w)。然后我们需要计算h(即输出的高),计算公式如下所示:

在这里插入图片描述

这里是引用举个栗子:假设输入通道数为3,kernel size为(2,2),图片最常见的通道数为3(所以我们拿来举例),经过Unfolder方法后,输出的高变为3_2_2=12,即输出的H为12。

计算完成之后,我们需要计算w,计算公式如下所示:

在这里插入图片描述

其中,d代表的是空间的所有维度数,例如空间维度为(H,W),则d=2。下面通过举例,我们来计算输出的w。

举个栗子:如果输入的H、W分别为5,kernel size为2,则输出的w为

在这里插入图片描述

4*4=16,故最终的输出size为[2,12,16]。

三、案例
  • 案例

import torch

import torch.nn as nn

if name == ‘main’:

x = torch.randn(1, 3, 5, 5)

print(x)

unfold = nn.Unfold(kernel_size=3)

output = unfold(x)

print(output, output.size())

  • 运行结果

tensor([[[[ 0.4009, 0.6350, -0.5197, 0.8148, -0.7235],

[-1.2102, 0.4621, -0.3421, -0.9261, -2.8376],

[-1.5553, 0.1713, 0.6820, -2.0880, -0.0204],

[ 1.1419, -0.4881, -0.9510, -0.0367, -0.8108],

[ 0.1459, -0.4568, 1.0039, -1.2385, -1.4467]],

[[-0.9973, -0.7601, -0.2161, 1.2120, -0.3036],

[-0.7279, 0.0833, -0.8886, -0.9168, 0.7503],

[-0.6748, 0.7064, 0.6903, -1.0447, 0.8688],

[-0.5230, -1.2308, -0.3932, 1.2521, -0.2523],

[-0.3930, 0.6452, 0.1690, 0.3744, 0.2015]],

[[ 0.6403, 1.3915, -1.9529, 0.2899, -0.8897],

[-0.1720, 1.0843, -1.0177, -1.7480, -0.5217],

[-0.9648, -0.0867, -0.2926, 0.3010, 0.3192],

[ 0.1181, -0.2218, 0.0766, 0.5914, -0.8932],

[-0.4508, -0.3964, 1.1163, 0.6776, -0.8948]]]])

tensor([[[ 0.4009, 0.6350, -0.5197, -1.2102, 0.4621, -0.3421, -1.5553,

0.1713, 0.6820],

[ 0.6350, -0.5197, 0.8148, 0.4621, -0.3421, -0.9261, 0.1713,

0.6820, -2.0880],

[-0.5197, 0.8148, -0.7235, -0.3421, -0.9261, -2.8376, 0.6820,

-2.0880, -0.0204],

[-1.2102, 0.4621, -0.3421, -1.5553, 0.1713, 0.6820, 1.1419,

-0.4881, -0.9510],

[ 0.4621, -0.3421, -0.9261, 0.1713, 0.6820, -2.0880, -0.4881,

-0.9510, -0.0367],

[-0.3421, -0.9261, -2.8376, 0.6820, -2.0880, -0.0204, -0.9510,

-0.0367, -0.8108],

[-1.5553, 0.1713, 0.6820, 1.1419, -0.4881, -0.9510, 0.1459,

-0.4568, 1.0039],

[ 0.1713, 0.6820, -2.0880, -0.4881, -0.9510, -0.0367, -0.4568,

1.0039, -1.2385],

[ 0.6820, -2.0880, -0.0204, -0.9510, -0.0367, -0.8108, 1.0039,

-1.2385, -1.4467],

[-0.9973, -0.7601, -0.2161, -0.7279, 0.0833, -0.8886, -0.6748,

0.7064, 0.6903],

[-0.7601, -0.2161, 1.2120, 0.0833, -0.8886, -0.9168, 0.7064,

0.6903, -1.0447],

[-0.2161, 1.2120, -0.3036, -0.8886, -0.9168, 0.7503, 0.6903,

-1.0447, 0.8688],

[-0.7279, 0.0833, -0.8886, -0.6748, 0.7064, 0.6903, -0.5230,

-1.2308, -0.3932],

[ 0.0833, -0.8886, -0.9168, 0.7064, 0.6903, -1.0447, -1.2308,

-0.3932, 1.2521],

[-0.8886, -0.9168, 0.7503, 0.6903, -1.0447, 0.8688, -0.3932,

1.2521, -0.2523],

[-0.6748, 0.7064, 0.6903, -0.5230, -1.2308, -0.3932, -0.3930,

0.6452, 0.1690],

[ 0.7064, 0.6903, -1.0447, -1.2308, -0.3932, 1.2521, 0.6452,

0.1690, 0.3744],

[ 0.6903, -1.0447, 0.8688, -0.3932, 1.2521, -0.2523, 0.1690,

0.3744, 0.2015],

[ 0.6403, 1.3915, -1.9529, -0.1720, 1.0843, -1.0177, -0.9648,

-0.0867, -0.2926],

[ 1.3915, -1.9529, 0.2899, 1.0843, -1.0177, -1.7480, -0.0867,

-0.2926, 0.3010],

[-1.9529, 0.2899, -0.8897, -1.0177, -1.7480, -0.5217, -0.2926,

0.3010, 0.3192],

[-0.1720, 1.0843, -1.0177, -0.9648, -0.0867, -0.2926, 0.1181,

-0.2218, 0.0766],

[ 1.0843, -1.0177, -1.7480, -0.0867, -0.2926, 0.3010, -0.2218,

0.0766, 0.5914],

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 15
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值