nn.Upsample() 参数详解及避坑

1. 用法

torch.nn.Upsample(size=None, scale_factor=None, mode='nearest', align_corners=None, recompute_scale_factor=None)
  1. size: 指定输出的尺寸大小
  2. scale_factor: 指定输出的尺寸是输入尺寸的倍数
  3. mode: 上采样的算法可选 ‘nearest’, ‘linear’, ‘bilinear’, ‘bicubic’,‘trilinear’. 默认: ‘nearest
  4. align_cornersrecomputer_scale_factor:几乎用不到

2. 避坑

这是尺寸的改变,不是通道改变,入门小白请注意! 是尺寸,尺寸,尺寸,不是通道,不是通道,不是通道
在Attention U-Net中有用到

在PyTorch中,nn.Upsample模块用于对张量进行插值,以放大或缩小其尺寸。它的参数用法如下: * scale_factor:指定插值因子。可以使用单一数值或一个张量,以表示沿着所有维度上的插值因子。如果使用单一数值,那么它必须是一个大于1的数,用于放大张量的所有维度。如果使用张量,则可以指定不同维度的插值因子。 * mode:指定插值模式。可选的模式包括'nearest'(最近邻插值)、'bilinear'(双线性插值)和'bicubic'(双三次插值)。默认模式为'bilinear'。 * align_corners:指定是否保持插值输出和输入在角点的对齐方式。默认情况下,align_corners为True,这意味着输出和输入在角点上对齐。 下面是一个使用nn.Upsample的示例代码: ```python import torch import torch.nn as nn # 创建一个大小为(1, 2, 2, 1)的张量 input = torch.randn(1, 2, 2, 1) # 创建一个插值层,放大张量的尺寸到(1, 4, 4, 2) upsample = nn.Upsample(scale_factor=(2, 2), mode='bilinear', align_corners=True) # 应用插值层得到放大后的张量 output = upsample(input) print(output.size()) # 输出:(1, 4, 4, 2) ``` 在上面的示例中,我们创建了一个大小为(1, 2, 2, 1)的张量,并使用nn.Upsample层将其放大到(1, 4, 4, 2)的尺寸。我们指定了插值因子为(2, 2),模式为'bilinear',并设置了align_corners为True以保持对齐方式。最后,我们打印了输出张量的尺寸,可以看到它已经被放大到了指定的尺寸。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Philo`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值