package Ġeu . red bean . kon nan . layers Ċ Ċ import Ġeu . red bean . kon nan . layers . initial izers . Initializer Ċ import Ġeu . red bean . kon nan . layers . utils . as Triple Ċ import Ġeu . red bean . kon nan . layers . utils . triple Of Ċ import Ġeu . red bean . k ten . api . auto grad . functions . nn . conv 3 d Transpose Ċ import Ġeu . red bean . k ten . api . tensor . Tensor Ċ Ċ class ĠConv 3 D Transpose ( ĊĠĠĠ Ġsize : ĠInt , ĊĠĠĠ Ġkernel Size : ĠTrip le < Int , ĠInt , ĠInt >, ĊĠĠĠ Ġstride : ĠTrip le < Int , ĠInt , ĠInt > Ġ= Ġtriple Of ( 1 ), ĊĠĠĠ Ġpadding : ĠTrip le < Int , ĠInt , ĠInt > Ġ= Ġtriple Of ( 0 ), ĊĠĠĠ Ġoutput Padding : ĠTrip le < Int , ĠInt , ĠInt > Ġ= Ġtriple Of ( 0 ), ĊĠĠĠ Ġd ilation : ĠTrip le < Int , ĠInt , ĠInt > Ġ= Ġtriple Of ( 1 ), ĊĠĠĠ Ġgroups : ĠInt Ġ= Ġ 1 , ĊĠĠĠ Ġchannels First : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġuse Bias : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġweight Initializer : ĠInitial izer ? Ġ= Ġnull , ĊĠĠĠ Ġbias Initializer : ĠInitial izer ? Ġ= Ġnull , ĊĠĠĠ Ġname : ĠString ? Ġ= Ġnull Ċ ) Ġ: ĠAbstract Conv Layer ( ĊĠĠĠ Ġsize , ĊĠĠĠ Ġkernel Size . toList (), ĊĠĠĠ Ġpadding . toList (), ĊĠĠĠ Ġd ilation . toList (), ĊĠĠĠ Ġstride . toList (), ĊĠĠĠ Ġoutput Padding . toList (), ĊĠĠĠ Ġgroups , ĊĠĠĠ Ġuse Bias , ĊĠĠĠ Ġchannels First , ĊĠĠĠ Ġtrue , ĊĠĠĠ Ġweight Initializer , ĊĠĠĠ Ġbias Initializer , ĊĠĠĠ Ġname Ċ ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcheck Input Shape ( in Shape : ĠList < Int >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( in Shape . size Ġ!= Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Conv 3 D Transpose Ġlayer Ġexpects Ġthe Ġprevious Ġlayer Ġto Ġhave Ġ 4 Ġdimensions : Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( C Ġx ĠD Ġx ĠH Ġx ĠW ) Ġin Ġchannels Ġfirst Ġmode , Ġor Ġ( D Ġx ĠH Ġx ĠW Ġx ĠC ) Ġin Ġchannels Ġlast Ġmode , Ġbut Ġgot Ġlayer Ġwith Ġshape : Ġ${ in Shape }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġforward With Channels First ( input : ĠTensor ): ĠTensor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinput . conv 3 d Transpose ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweight , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( use Bias ) Ġbias Ġelse Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstride . as Triple (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpadding . as Triple (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Padding . as Triple (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd ilation . as Triple (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroups ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠĠ Ċ }