/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠDeep ĠLearning Ġproject Ġcontributors . ĠAll ĠRights ĠReserved . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġexamples . inference . production Ċ Ċ import Ġorg . jetbrains . kotlin x . dl . api . core . Sequential Ċ import Ġorg . jetbrains . kotlin x . dl . api . core . activation . Activ ations Ċ import Ġorg . jetbrains . kotlin x . dl . api . core . initializer . Gl or ot Normal Ċ import Ġorg . jetbrains . kotlin x . dl . api . core . initializer . Gl or ot Uniform Ċ import Ġorg . jetbrains . kotlin x . dl . api . core . layer . Dense Ċ import Ġorg . jetbrains . kotlin x . dl . api . core . layer . Flatten Ċ import Ġorg . jetbrains . kotlin x . dl . api . core . layer . Input Ċ import Ġorg . jetbrains . kotlin x . dl . api . core . layer . tw od im . Conv 2 D Ċ import Ġorg . jetbrains . kotlin x . dl . api . core . layer . tw od im . Conv Padding Ċ import Ġorg . jetbrains . kotlin x . dl . api . core . layer . tw od im . Max Pool 2 D Ċ import Ġorg . jetbrains . kotlin x . dl . datasets . Dataset Ċ import Ġorg . jetbrains . kotlin x . dl . datasets . handlers . NUMBER _ OF _ CLASSES Ċ Ċ private Ġconst Ġval ĠNUM _ CHANNEL S Ġ= Ġ 1 L Ċ private Ġconst Ġval ĠIMAGE _ SIZE Ġ= Ġ 2 8 L Ċ private Ġconst Ġval ĠSE ED Ġ= Ġ 1 2 L Ċ Ċ private Ġval Ġkernel Initializer Ġ= ĠG lor ot Normal ( SEED ) Ċ private Ġval Ġbias Initializer Ġ= ĠG lor ot Uniform ( SEED ) Ċ Ċ val Ġlen et 5 Ġ= ĠSequential . of ( ĊĠĠĠ ĠInput ( ĊĠĠĠĠĠĠĠ ĠIMAGE _ SIZE , ĊĠĠĠĠĠĠĠ ĠIMAGE _ SIZE , ĊĠĠĠĠĠĠĠ ĠNUM _ CHANNEL S , ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" input _ 0 " ĊĠĠĠ Ġ), ĊĠĠĠ ĠConv 2 D ( ĊĠĠĠĠĠĠĠ Ġfilters Ġ= Ġ 3 2 , ĊĠĠĠĠĠĠĠ Ġkernel Size Ġ= Ġlong ArrayOf ( 5 , Ġ 5 ), ĊĠĠĠĠĠĠĠ Ġstrides Ġ= Ġlong ArrayOf ( 1 , Ġ 1 , Ġ 1 , Ġ 1 ), ĊĠĠĠĠĠĠĠ Ġactivation Ġ= ĠActiv ations . Rel u , ĊĠĠĠĠĠĠĠ Ġkernel Initializer Ġ= Ġkernel Initializer , ĊĠĠĠĠĠĠĠ Ġbias Initializer Ġ= Ġbias Initializer , ĊĠĠĠĠĠĠĠ Ġpadding Ġ= ĠConv Padding . SAME , ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" conv 2 d _ 1 " ĊĠĠĠ Ġ), ĊĠĠĠ ĠMax Pool 2 D ( ĊĠĠĠĠĠĠĠ Ġpool Size Ġ= Ġint ArrayOf ( 1 , Ġ 2 , Ġ 2 , Ġ 1 ), ĊĠĠĠĠĠĠĠ Ġstrides Ġ= Ġint ArrayOf ( 1 , Ġ 2 , Ġ 2 , Ġ 1 ), ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" max Pool _ 2 " ĊĠĠĠ Ġ), ĊĠĠĠ ĠConv 2 D ( ĊĠĠĠĠĠĠĠ Ġfilters Ġ= Ġ 6 4 , ĊĠĠĠĠĠĠĠ Ġkernel Size Ġ= Ġlong ArrayOf ( 5 , Ġ 5 ), ĊĠĠĠĠĠĠĠ Ġstrides Ġ= Ġlong ArrayOf ( 1 , Ġ 1 , Ġ 1 , Ġ 1 ), ĊĠĠĠĠĠĠĠ Ġactivation Ġ= ĠActiv ations . Rel u , ĊĠĠĠĠĠĠĠ Ġkernel Initializer Ġ= Ġkernel Initializer , ĊĠĠĠĠĠĠĠ Ġbias Initializer Ġ= Ġbias Initializer , ĊĠĠĠĠĠĠĠ Ġpadding Ġ= ĠConv Padding . SAME , ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" conv 2 d _ 3 " ĊĠĠĠ Ġ), ĊĠĠĠ ĠMax Pool 2 D ( ĊĠĠĠĠĠĠĠ Ġpool Size Ġ= Ġint ArrayOf ( 1 , Ġ 2 , Ġ 2 , Ġ 1 ), ĊĠĠĠĠĠĠĠ Ġstrides Ġ= Ġint ArrayOf ( 1 , Ġ 2 , Ġ 2 , Ġ 1 ), ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" max Pool _ 4 " ĊĠĠĠ Ġ), ĊĠĠĠ ĠFlat ten ( name Ġ= Ġ" flatten _ 5 "), Ġ// Ġ 3 1 3 6 ĊĠĠĠ ĠDense ( ĊĠĠĠĠĠĠĠ Ġoutput Size Ġ= Ġ 1 2 0 , ĊĠĠĠĠĠĠĠ Ġactivation Ġ= ĠActiv ations . Rel u , ĊĠĠĠĠĠĠĠ Ġkernel Initializer Ġ= Ġkernel Initializer , ĊĠĠĠĠĠĠĠ Ġbias Initializer Ġ= Ġbias Initializer , ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" dense _ 6 " ĊĠĠĠ Ġ), ĊĠĠĠ ĠDense ( ĊĠĠĠĠĠĠĠ Ġoutput Size Ġ= Ġ 8 4 , ĊĠĠĠĠĠĠĠ Ġactivation Ġ= ĠActiv ations . Rel u , ĊĠĠĠĠĠĠĠ Ġkernel Initializer Ġ= Ġkernel Initializer , ĊĠĠĠĠĠĠĠ Ġbias Initializer Ġ= Ġbias Initializer , ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" dense _ 7 " ĊĠĠĠ Ġ), ĊĠĠĠ ĠDense ( ĊĠĠĠĠĠĠĠ Ġoutput Size Ġ= ĠNUMBER _ OF _ CLASSES , ĊĠĠĠĠĠĠĠ Ġactivation Ġ= ĠActiv ations . Linear , ĊĠĠĠĠĠĠĠ Ġkernel Initializer Ġ= Ġkernel Initializer , ĊĠĠĠĠĠĠĠ Ġbias Initializer Ġ= Ġbias Initializer , ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" dense _ 8 " ĊĠĠĠ Ġ) Ċ ) Ċ Ċ fun Ġget Label ( dataset : ĠDataset , Ġimage Id : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġimage Label Ġ= Ġdataset . getY ( image Id ) ĊĠĠĠ Ġreturn Ġimage Label . indexOf First Ġ{ Ġit Ġ== Ġimage Label . max OrNull () !! Ġ} Ċ } Ċ Ċ fun Ġmn ist Res hape ( image : ĠFloat Array ): ĠArray < Array < Array < Float Array >>> Ġ{ ĊĠĠĠ Ġval Ġre sh aped Ġ= ĠArray ( ĊĠĠĠĠĠĠĠĠ 1 ĊĠĠĠ Ġ) Ġ{ ĠArray ( 2 8 ) Ġ{ ĠArray ( 2 8 ) Ġ{ ĠFloat Array ( 1 ) Ġ} Ġ} Ġ} ĊĠĠĠ Ġfor Ġ( i Ġin Ġimage . indices ) Ġre sh aped [ 0 ][ i Ġ/ Ġ 2 8 ][ i Ġ% Ġ 2 8 ][ 0 ] Ġ= Ġimage [ i ] ĊĠĠĠ Ġreturn Ġre sh aped Ċ } Ċ