快捷方式

ConvTranspose1d

class torch.nn.ConvTranspose1d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True, dilation=1, padding_mode='zeros', device=None, dtype=None)[source][source]

對由數個輸入平面組成的輸入影像套用一維轉置卷積運算。

此模組可以視為 Conv1d 對於其輸入的梯度。它也被稱為部分步幅卷積或反卷積(雖然它不是實際的反卷積運算,因為它不計算卷積的真正逆運算)。如需更多資訊,請參閱這裡的可視化和反卷積網路論文。

此模組支援 TensorFloat32

在某些 ROCm 裝置上,當使用 float16 輸入時,此模組將對向後傳播使用不同的精度

  • stride 控制互相關的步幅。

  • padding 控制在兩側的隱式零填充量,填充點數為 dilation * (kernel_size - 1) - padding。 有關詳細資訊,請參閱下面的注意事項。

  • output_padding 控制添加到輸出形狀一側的額外大小。有關詳細資訊,請參閱下面的注意事項。

  • dilation 控制核心點之間的間距;也稱為 à trous 演算法。 它很難描述,但這裡的連結有一個很好的可視化,可以說明 dilation 的作用。

  • groups 控制輸入和輸出之間的連接。 in_channelsout_channels 都必須能被 groups 整除。 例如,

    • 在 groups=1 時,所有輸入都捲積到所有輸出。

    • 在 groups=2 時,該運算相當於並排放置兩個卷積層,每個卷積層看到一半的輸入通道並產生一半的輸出通道,然後將它們連接起來。

    • 在 groups= in_channels 時,每個輸入通道都與其自己的一組濾波器(大小為 out_channelsin_channels\frac{\text{out\_channels}}{\text{in\_channels}})進行卷積。

注意

padding 參數有效地將 dilation * (kernel_size - 1) - padding 數量的零填充添加到輸入的兩側。 這樣設定是為了當 Conv1dConvTranspose1d 使用相同的參數初始化時,它們在輸入和輸出形狀方面是彼此的逆運算。 但是,當 stride > 1 時,Conv1d 會將多個輸入形狀映射到相同的輸出形狀。 提供 output_padding 是為了透過有效地增加一側的計算輸出形狀來解決此不明確性。 請注意,output_padding 僅用於尋找輸出形狀,但實際上不會將零填充添加到輸出。

注意

在某些情況下,當將 CUDA 後端與 CuDNN 搭配使用時,此運算子可能會選擇一種非確定性演算法來提高效能。 如果不希望這樣,您可以嘗試透過設定 torch.backends.cudnn.deterministic = True 使運算具有確定性(可能以效能為代價)。 有關背景資訊,請參閱有關可重現性的注意事項。

參數
  • in_channels (int) – 輸入影像中的通道數

  • out_channels (int) – 卷積產生的通道數

  • kernel_size (inttuple) – 卷積核心的大小

  • stride (inttuple, 選填) – 卷積的步幅。預設值:1

  • padding (inttuple, 選填) – dilation * (kernel_size - 1) - padding 數量的零填充將會加到輸入的兩側。預設值:0

  • output_padding (inttuple, 選填) – 額外加到輸出形狀一側的尺寸。預設值:0

  • groups (int, 選填) – 從輸入通道到輸出通道的阻擋連接數量。預設值:1

  • bias (bool, 選填) – 若為 True,則將可學習的偏差加到輸出。預設值:True

  • dilation (inttuple, 選填) – 核心元素之間的間距。預設值:1

形狀
  • 輸入: (N,Cin,Lin)(N, C_{in}, L_{in})(Cin,Lin)(C_{in}, L_{in})

  • 輸出:(N,Cout,Lout)(N, C_{out}, L_{out})(Cout,Lout)(C_{out}, L_{out}),其中

    Lout=(Lin1)×stride2×padding+dilation×(kernel_size1)+output_padding+1L_{out} = (L_{in} - 1) \times \text{stride} - 2 \times \text{padding} + \text{dilation} \times (\text{kernel\_size} - 1) + \text{output\_padding} + 1
變數
  • weight ( Tensor ) – 模組的可學習權重,形狀為 (in_channels,out_channelsgroups,(\text{in\_channels}, \frac{\text{out\_channels}}{\text{groups}}, kernel_size)\text{kernel\_size})。 這些權重的值取樣自 U(k,k)\mathcal{U}(-\sqrt{k}, \sqrt{k}) ,其中 k=groupsCoutkernel_sizek = \frac{groups}{C_\text{out} * \text{kernel\_size}}

  • bias (Tensor) – 模組中可學習的偏置,形狀為 (out_channels)。如果 biasTrue,則這些權重的值會從 U(k,k)\mathcal{U}(-\sqrt{k}, \sqrt{k}) 均勻分佈中取樣,其中 k=groupsCoutkernel_sizek = \frac{groups}{C_\text{out} * \text{kernel\_size}}

文件

取得 PyTorch 的完整開發者文件

檢視文件

教學

取得適合初學者和進階開發者的深入教學

檢視教學

資源

尋找開發資源並獲得問題解答

檢視資源