Loading TOC...


   $convolution-map as cntk:variable,
   $operand as cntk:variable,
   $strides as cntk:shape,
   $sharing as xs:boolean*,
   $lower-pad as xs:unsignedLong*,
   $upper-pad as xs:unsignedLong*,
   $output-shape as cntk:shape,
   $dilation as cntk:shape,
   $max-temp-mem-size-in-samples as xs:unsignedLong,
   $name as xs:string
) as cntk:function


Convolution transpose with explicit lower and upper pad values

$convolution-map Convolution filter weights, stored as a tensor of dimensions [I×O×m1×m2×…×mn], where [m1×m2×…×mn] must be the kernel dimensions (spatial extent of the filter).
$operand The operand of the operation.
$strides Stride dimensions. If strides[i] > 1 then only pixel positions that are multiples of strides[i] are computed. For example, a stride of 2 will lead to a halving of that dimension. The first stride dimension that lines up with the number of input channels can be set to any non-zero value.
$sharing Sharing flags for each input dimension.
$output-shape User expected output shape after convolution transpose.
$dilation The dilation value along each axis, default 1 mean no dilation.
$max-temp-mem-size-in-samples Maximum amount of auxiliary memory (in samples) that should be reserved to perform convolution operations. Some convolution engines (e.g. cuDNN and GEMM-based engines) can benefit from using workspace as it may improve performance. However, sometimes this may lead to higher memory utilization. Default is 0 which means the same as the input samples.
$name The name of the function instance in the network.


  xquery version "1.0-ml";
  let $x := cntk:input-variable(cntk:shape((3,3)),"")
  let $kernel := cntk:input-variable(cntk:shape((3,2)),"float")
  let $model := cntk:convolution-transpose-with-explicit-padding($kernel, $x, cntk:shape((1)), (fn:true()), (1),(2),cntk:shape((0)), cntk:shape((1)), 0)
  return fn:replace(xdmp:quote($model), "Input[0-9]*", "Input")
  => cntk:function(Composite Convolution (Input(Uid(Input), Shape([3 x 2]), Dynamic Axes([Sequence Axis(Default Dynamic Axis), Batch Axis(Default Batch Axis)])), Input(Uid(Input), Shape([3 x 3]), Dynamic Axes([Sequence Axis(Default Dynamic Axis), Batch Axis(Default Batch Axis)]))))

Stack Overflow iconStack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.