torch.nn.functional.upsample¶
- torch.nn.functional.upsample(input, size=None, scale_factor=None, mode='nearest', align_corners=None)[原始碼][原始碼]¶
對輸入進行升採樣 (Upsample)。
提供的張量 (tensor) 會被升採樣至指定的
size
或scale_factor
。警告
此函式已被棄用,建議改用
torch.nn.functional.interpolate()
。 這等同於nn.functional.interpolate(...)
。注意
當在 CUDA 裝置上給定張量時,此操作可能會產生不確定的梯度。有關更多訊息,請參閱 重現性 (Reproducibility)。
用於升採樣的演算法由
mode
決定。目前支援時間、空間和體積升採樣,即預期的輸入形狀為 3-D、4-D 或 5-D。
輸入維度以以下形式解釋:mini-batch x 通道數 x [可選深度] x [可選高度] x 寬度。
可用於升採樣的模式有:nearest、linear(僅限 3D)、bilinear、bicubic(僅限 4D)、trilinear(僅限 5D)
- 參數
input (Tensor) – 輸入張量 (tensor)
size (int 或 Tuple[int] 或 Tuple[int, int] 或 Tuple[int, int, int]) – 輸出空間大小。
scale_factor (float 或 Tuple[float]) – 空間大小的乘數。如果是元組 (tuple),則必須與輸入大小相符。
mode (str) – 用於升採樣的演算法:
'nearest'
|'linear'
|'bilinear'
|'bicubic'
|'trilinear'
。預設值:'nearest'
align_corners (bool, optional) – 在幾何上,我們將輸入和輸出的像素視為正方形而不是點。 如果設定為
True
,則輸入和輸出張量會通過其角落像素的中心點對齊,從而保留角落像素處的值。 如果設定為False
,則輸入和輸出張量會通過其角落像素的角點對齊,並且插值使用邊緣值填充來處理超出邊界的值,使得此操作在scale_factor
保持不變時獨立於輸入大小。 這僅在mode
為'linear'
、'bilinear'
、'bicubic'
或'trilinear'
時才有效。預設值:False
注意
使用
mode='bicubic'
,可能會導致過衝 (overshoot),換句話說,它可能會產生負值或大於 255 的影像值。如果想減少顯示影像時的過衝,請明確呼叫result.clamp(min=0, max=255)
。警告
使用
align_corners = True
,線性插值模式(linear、bilinear 和 trilinear)不會按比例對齊輸出和輸入像素,因此輸出值可能取決於輸入大小。 這是 0.3.1 版之前這些模式的預設行為。 從那時起,預設行為是align_corners = False
。 有關這如何影響輸出的具體範例,請參閱Upsample
。