.. index:: pair: page; ConvTranspose .. _doxid-dev_guide_op_convtranspose: ConvTranspose ============= General ~~~~~~~ ConvTranspose operation performs the same computation as calculating the gradient with regard to :math:`\src` of Convolution operation. To see the difference visually, you can go to https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md "visualization page". Operation attributes ~~~~~~~~~~~~~~~~~~~~ =========================================================================================================================== ================================================================================================================================================================================================ ======= ===================================================================== ========= Attribute Name De =========================================================================================================================== ================================================================================================================================================================================================ ======= ===================================================================== ========= :ref:`strides ` Controls the strides the weights tensor is moved when computing convolution. s64 A s64 list containing positive values Required :ref:`pads_begin ` Controls number of zeros to be add to the front/top/left of spatial dimensions. s64 A s64 list containing non-negative values Required :ref:`pads_end ` Controls number of zeros to be add to the back/bottom/right of spatial dimensions. s64 A s64 list containing non-negative values Required :ref:`dilations ` Controls the amount of stretching the kernel before convolution ( `visualization link `__ ). s64 A s64 list containing positive values (>1 means dilated convolution) Required :ref:`auto_pad ` Controls how the padding is calculated. string ``none`` (default), ``same_upper`` , ``same_lower`` , ``valid`` Optional :ref:`output_padding ` Adds additional amount of padding per each spatial axis in ``dst`` . s64 A s64 list containing non-negative values, all zeros by default Optional :ref:`groups ` Controls how input channels and output channels are divided into. s64 A positive s64 value, ``1`` by default Optional :ref:`data_format ` Controls how to interpret the shape of ``src`` and ``dst`` . string ``NCX`` , ``NXC`` (default) Optional :ref:`weights_format ` Controls how to interpret the shape of ``weights`` . string ``IOX`` , ``XOI`` (default) Optional =========================================================================================================================== ================================================================================================================================================================================================ ======= ===================================================================== ========= Execution arguments ~~~~~~~~~~~~~~~~~~~ The inputs and outputs must be provided according to below index order when constructing an operation. Inputs ------ ====== ============ ========= Index Argu ====== ============ ========= 0 ``src`` Required 1 ``weights`` Required 2 ``bias`` Optional ====== ============ ========= .. note:: The shape of :math:`\weights` is :math:`(in\_channels / groups, out\_channels, spatial\_shape)` for ``IOX`` format or :math:`(spatial\_shape, out\_channels, in\_channels / groups)` for ``XOI`` format. Both :math:`in\_channels` and :math:`out\_channels` must be divisible by groups attribute. Outputs ------- ====== ======== ========= Index Argu ====== ======== ========= 0 ``dst`` Required ====== ======== ========= Supported data types ~~~~~~~~~~~~~~~~~~~~ ConvTranspose operation supports the following data type combinations. ===== ======== ===== ===== Src Weights ===== ======== ===== ===== f32 f32 f32 f32 bf16 bf16 bf16 bf16 f16 f16 f16 f16 ===== ======== ===== =====