【深度学习】特征图的上采样(nn.Upsample)和转置卷积(nn.ConvTranspose2d) | pytorch


前言

这次就不废话了,我想赶在10点前回去洗头(现在9.17,还差一篇文章)

一、nn.Upsample 上采样

该函数有四个参数:
在这里插入图片描述
参数的介绍如下:
在这里插入图片描述
稍微翻译一下:
参数:
1)size(int或Tuple[int]或Tuple[int,int]或Tupple[int,int,int],可选):输出空间大小
2)scale_factor(float或Tuple[floot]或Tuple[floot,float]或Tuple[floot、float、float],可选):空间大小的乘数。如果是元组,则必须匹配输入大小。
3)mode(str,可选):上采样算法:“最近”,“线性”、“双线性”、“双三次”和“三线性”。默认值 ‘nearst’
4)align_ccorners(bool,可选):如果“True”,则输入的角像素和输出张量对齐,从而保持这些像素。仅当:attr:mode为“线性”、“线性”或“三线性”。默认值:False

深度学习里用的比较多的是二倍向上采样,比如经常出现在U-net网络结构里,例子如下:

import torch
import torch.nn as nn
A =torch.rand(1,3,24,24)
up=nn.Upsample(scale_factor=2, mode='bilinear', align_corners=True)
B =up(A)
print(B.shape)

在这里插入图片描述

如果少写了一个维度,就会报错:

import torch
import torch.nn as nn
A =torch.rand(3,24,24)
up=nn.Upsample(scale_factor=2, mode='bilinear', align_corners=True)
B =up(A)
print(B.shape)

在这里插入图片描述

二、nn.ConvTranspose2d 转置卷积

我们首先看看它的参数,依然如此得多
在这里插入图片描述
其实,转置卷积和普通的卷积操作,参数配置都是很相似的。看几个例子把
1)311型转置卷积:

import torch
import torch.nn as nn
A =torch.rand(1,64,24,24)
up=nn.ConvTranspose2d(64,32,3,1,1)
B =up(A)
print(B.shape)

在这里插入图片描述
和普通卷积的311一样,宽高不变
2)310型转置卷积:

import torch
import torch.nn as nn
A =torch.rand(1,64,24,24)
up=nn.ConvTranspose2d(64,32,3,1,0)
B =up(A)
print(B.shape)

在这里插入图片描述
和普通卷积类似,这里是+2(普通卷积是宽高-2)


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值