ConvTranspose

ConvTranspose - 22

版本

  • 名稱: ConvTranspose (GitHub)

  • 網域: main

  • since_version: 22

  • 函式: False

  • 支援層級: SupportType.COMMON

  • 形狀推論: True

此運算子的版本自版本 22 起可用。

摘要

卷積轉置運算子會取用輸入張量和篩選器,並計算輸出。

如果提供 pads 參數,則輸出的形狀會透過下列方程式計算

output_shape[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - pads[start_i] - pads[end_i]

也可以明確指定 output_shape,在這種情況下,會使用這些方程式自動產生 pads 值

total_padding[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - output_shape[i] If (auto_pads == SAME_UPPER): pads[start_i] = total_padding[i]/2; pads[end_i] = total_padding[i] - (total_padding[i]/2) Else: pads[start_i] = total_padding[i] - (total_padding[i]/2); pads[end_i] = (total_padding[i]/2)。

屬性

  • auto_pad - STRING (預設值為 'NOTSET')

    auto_pad 必須是 NOTSET、SAME_UPPER、SAME_LOWER 或 VALID。預設值為 NOTSET,表示使用明確填補。SAME_UPPER 或 SAME_LOWER 表示填補輸入,使每個軸 ioutput_shape[i] = input_shape[i] * strides[i]。填補會在兩側平均或幾乎平均分割 (取決於它是偶數還是奇數)。如果填補是奇數,則額外的填補會新增至 SAME_UPPER 的結尾,以及 SAME_LOWER 的開頭。

  • dilations - INTS :

    沿篩選器的每個空間軸的 dilation 值。如果不存在,則 dilation 預設為沿每個空間軸 1。

  • group - INT (預設值為 '1')

    輸入通道和輸出通道所分割成的群組數。

  • kernel_shape - INTS :

    卷積核心的形狀。如果不存在,應從輸入 W 推斷。

  • output_padding - INTS :

    新增至輸出中具有較高座標索引的側邊的其他元素。「output_padding」中的每個填補值都必須小於對應的 stride/dilation 維度。依預設,此屬性是零向量。請注意,此屬性不會直接影響計算的輸出值。它只會控制計算值的選取,因此變更此屬性只會新增或移除輸出元素。如果明確提供「output_shape」,則「output_padding」不會為「output_shape」新增額外的大小,但會參與計算所需的填補量。在某些架構中,這也稱為 adjs 或調整。

  • output_shape - INTS :

    可以明確設定輸出的形狀,這會導致自動產生 pads 值。如果指定 output_shape,則會忽略 pads 值。如需產生 pads 的方程式詳細資訊,請參閱文件。請注意,output_shape 屬性值不應包含批次大小和通道的維度,這些維度會自動推斷。

  • pads - INTS :

    沿每個空間軸的開頭和結尾的填補,它可以採用任何大於或等於 0 的值。該值表示新增至對應軸的開頭和結尾部分的像素數。pads 格式應如下:[x1_begin, x2_begin…x1_end, x2_end,…],其中 xi_begin 是新增至軸 i 開頭的像素數,而 xi_end 是新增至軸 i 結尾的像素數。此屬性不能與 auto_pad 屬性同時使用。如果不存在,則填補預設為沿每個空間軸的開頭和結尾 0。

  • strides - INTS :

    沿每個空間軸的步幅。如果不存在,則步幅預設為沿每個空間軸 1。

輸入

介於 2 和 3 個輸入之間。

  • X (異質) - T

    來自先前層的輸入資料張量;大小為 (N x C x H x W),其中 N 是批次大小,C 是通道數,而 H 和 W 是高度和寬度。請注意,這是針對 2D 影像。否則,大小為 (N x C x D1 x D2 ... x Dn)

  • W (異質) - T

    將用於卷積的權重張量;大小為 (C x M/group x kH x kW),其中 C 是通道數,而 kH 和 kW 是核心的高度和寬度,而 M 是特徵地圖的數量。對於超過 2 個維度,權重形狀會是 (C x M/group x k1 x k2 x ... x kn),其中 (k1 x k2 x ... x kn) 是核心的維度。輸出的通道數應該等於 W.shape[1] * group (假設形狀陣列是以零為基礎的索引)

  • B (選用,異質) - T

    要新增至卷積的選用 1D 偏差,大小為 M。

輸出

  • Y (異質) - T

    包含卷積結果的輸出資料張量。輸出維度是核心大小、步幅大小、填補長度和群組計數的函式。輸出的通道數應該等於 W.shape[1] * group (假設形狀陣列是以零為基礎的索引)

類型限制

  • T in ( tensor(bfloat16), tensor(double), tensor(float), tensor(float16) )

    限制輸入和輸出類型為浮點數張量。

ConvTranspose - 11

版本

  • 名稱: ConvTranspose (GitHub)

  • 網域: main

  • since_version: 11

  • 函式: False

  • 支援層級: SupportType.COMMON

  • 形狀推論: True

此運算符的版本自版本 11 起可用。

摘要

卷積轉置運算子會取用輸入張量和篩選器,並計算輸出。

如果提供 pads 參數,則輸出的形狀會透過下列方程式計算

output_shape[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - pads[start_i] - pads[end_i]

也可以明確指定 output_shape,在這種情況下,會使用這些方程式自動產生 pads 值

total_padding[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - output_shape[i] If (auto_pads == SAME_UPPER): pads[start_i] = total_padding[i]/2; pads[end_i] = total_padding[i] - (total_padding[i]/2) Else: pads[start_i] = total_padding[i] - (total_padding[i]/2); pads[end_i] = (total_padding[i]/2)。

屬性

  • auto_pad - STRING (預設值為 'NOTSET')

    auto_pad 必須是 NOTSET、SAME_UPPER、SAME_LOWER 或 VALID。預設值為 NOTSET,表示使用明確填補。SAME_UPPER 或 SAME_LOWER 表示填補輸入,使每個軸 ioutput_shape[i] = input_shape[i] * strides[i]。填補會在兩側平均或幾乎平均分割 (取決於它是偶數還是奇數)。如果填補是奇數,則額外的填補會新增至 SAME_UPPER 的結尾,以及 SAME_LOWER 的開頭。

  • dilations - INTS :

    沿篩選器的每個空間軸的 dilation 值。如果不存在,則 dilation 預設為沿每個空間軸 1。

  • group - INT (預設值為 '1')

    輸入通道和輸出通道所分割成的群組數。

  • kernel_shape - INTS :

    卷積核心的形狀。如果不存在,應從輸入 W 推斷。

  • output_padding - INTS :

    新增至輸出中具有較高座標索引的側邊的其他元素。「output_padding」中的每個填補值都必須小於對應的 stride/dilation 維度。依預設,此屬性是零向量。請注意,此屬性不會直接影響計算的輸出值。它只會控制計算值的選取,因此變更此屬性只會新增或移除輸出元素。如果明確提供「output_shape」,則「output_padding」不會為「output_shape」新增額外的大小,但會參與計算所需的填補量。在某些架構中,這也稱為 adjs 或調整。

  • output_shape - INTS :

    可以明確設定輸出的形狀,這會導致自動產生 pads 值。如果指定 output_shape,則會忽略 pads 值。如需產生 pads 的方程式詳細資訊,請參閱文件。請注意,output_shape 屬性值不應包含批次大小和通道的維度,這些維度會自動推斷。

  • pads - INTS :

    沿每個空間軸的開頭和結尾的填補,它可以採用任何大於或等於 0 的值。該值表示新增至對應軸的開頭和結尾部分的像素數。pads 格式應如下:[x1_begin, x2_begin…x1_end, x2_end,…],其中 xi_begin 是新增至軸 i 開頭的像素數,而 xi_end 是新增至軸 i 結尾的像素數。此屬性不能與 auto_pad 屬性同時使用。如果不存在,則填補預設為沿每個空間軸的開頭和結尾 0。

  • strides - INTS :

    沿每個空間軸的步幅。如果不存在,則步幅預設為沿每個空間軸 1。

輸入

介於 2 和 3 個輸入之間。

  • X (異質) - T

    來自先前層的輸入資料張量;大小為 (N x C x H x W),其中 N 是批次大小,C 是通道數,而 H 和 W 是高度和寬度。請注意,這是針對 2D 影像。否則,大小為 (N x C x D1 x D2 ... x Dn)

  • W (異質) - T

    將用於卷積的權重張量;大小為 (C x M/group x kH x kW),其中 C 是通道數,而 kH 和 kW 是核心的高度和寬度,而 M 是特徵地圖的數量。對於超過 2 個維度,權重形狀會是 (C x M/group x k1 x k2 x ... x kn),其中 (k1 x k2 x ... x kn) 是核心的維度。輸出的通道數應該等於 W.shape[1] * group (假設形狀陣列是以零為基礎的索引)

  • B (選用,異質) - T

    要新增至卷積的選用 1D 偏差,大小為 M。

輸出

  • Y (異質) - T

    包含卷積結果的輸出資料張量。輸出維度是核心大小、步幅大小、填補長度和群組計數的函式。輸出的通道數應該等於 W.shape[1] * group (假設形狀陣列是以零為基礎的索引)

類型約束

  • T in ( tensor(double), tensor(float), tensor(float16) )

    限制輸入和輸出類型為浮點數張量。

ConvTranspose - 1

版本

  • 名稱: ConvTranspose (GitHub)

  • 網域: main

  • since_version: 1

  • 函式: False

  • 支援層級: SupportType.COMMON

  • 形狀推論: True

此運算符的版本自版本 1 起可用。

摘要

卷積轉置運算子會取用輸入張量和篩選器,並計算輸出。

如果提供 pads 參數,則輸出的形狀會透過下列方程式計算

output_shape[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - pads[start_i] - pads[end_i]

也可以明確指定 output_shape,在這種情況下,會使用這些方程式自動產生 pads 值

total_padding[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - output_shape[i] 如果 (auto_pads != SAME_UPPER): pads[start_i] = total_padding[i]/2; pads[end_i] = total_padding[i] - (total_padding[i]/2) 否則: pads[start_i] = total_padding[i] - (total_padding[i]/2); pads[end_i] = (total_padding[i]/2)。

屬性

  • auto_pad - STRING (預設值為 'NOTSET')

    auto_pad 必須是 NOTSET、SAME_UPPER、SAME_LOWER 或 VALID 其中之一。預設值為 NOTSET,表示使用明確的填充。SAME_UPPER 或 SAME_LOWER 表示填充輸入,使輸出空間大小與 input.In 相符。若為奇數,則為 SAME_UPPER 在末尾添加額外的填充,為 SAME_LOWER 在開頭添加。VALID 表示沒有填充。

  • dilations - INTS :

    沿著濾波器每個空間軸的膨脹值。

  • group - INT (預設值為 '1')

    輸入通道和輸出通道所分割成的群組數。

  • kernel_shape - INTS :

    卷積核心的形狀。如果不存在,應從輸入 W 推斷。

  • output_padding - INTS :

    添加到輸出的一側的零填充。這在某些框架中也稱為 adjs/adjustment。

  • output_shape - INTS :

    可以顯式設定輸出的形狀,這將導致自動產生 pads 值。如果指定 output_shape,則忽略 pads 值。有關產生 pads 的方程式的詳細資訊,請參閱文件。

  • pads - INTS :

    沿每個空間軸的開頭和結尾的填補,它可以採用任何大於或等於 0 的值。該值表示新增至對應軸的開頭和結尾部分的像素數。pads 格式應如下:[x1_begin, x2_begin…x1_end, x2_end,…],其中 xi_begin 是新增至軸 i 開頭的像素數,而 xi_end 是新增至軸 i 結尾的像素數。此屬性不能與 auto_pad 屬性同時使用。如果不存在,則填補預設為沿每個空間軸的開頭和結尾 0。

  • strides - INTS :

    沿著每個空間軸的步幅。

輸入

介於 2 和 3 個輸入之間。

  • X (異質) - T

    來自先前層的輸入資料張量;大小為 (N x C x H x W),其中 N 是批次大小,C 是通道數,而 H 和 W 是高度和寬度。請注意,這是針對 2D 影像。否則,大小為 (N x C x D1 x D2 ... x Dn)

  • W (異質) - T

    將用於卷積的權重張量;大小為 (C x M/group x kH x kW),其中 C 是通道數,而 kH 和 kW 是核心的高度和寬度,而 M 是特徵地圖的數量。對於超過 2 個維度,權重形狀會是 (C x M/group x k1 x k2 x ... x kn),其中 (k1 x k2 x ... x kn) 是核心的維度。輸出的通道數應該等於 W.shape[1] * group (假設形狀陣列是以零為基礎的索引)

  • B (選用,異質) - T

    要新增至卷積的選用 1D 偏差,大小為 M。

輸出

  • Y (異質) - T

    包含卷積結果的輸出資料張量。輸出維度是核心大小、步幅大小、填補長度和群組計數的函式。輸出的通道數應該等於 W.shape[1] * group (假設形狀陣列是以零為基礎的索引)

類型約束

  • T in ( tensor(double), tensor(float), tensor(float16) )

    限制輸入和輸出類型為浮點數張量。