(* Content-type: application/vnd.wolfram.mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 12.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 158, 7] NotebookDataLength[ 129307, 2552] NotebookOptionsPosition[ 126869, 2500] NotebookOutlinePosition[ 127207, 2515] CellTagsIndexPosition[ 127164, 2512] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell[TextData[{ StyleBox["Construction Notebook for:", FontSize->24], "\nColorNet Image Colorization Trained on Places Data" }], "Title", CellChangeTimes->{{3.7003902493848333`*^9, 3.7003902629036093`*^9}, { 3.713784318858347*^9, 3.713784321144644*^9}, {3.714994429184141*^9, 3.714994429664146*^9}, 3.714996106772522*^9, {3.716471444438959*^9, 3.716471447708563*^9}, {3.7247646934524813`*^9, 3.724764695227354*^9}}], Cell[CellGroupData[{ Cell["NetModel Access", "Subsection", CellChangeTimes->{{3.695474314080426*^9, 3.695474346087426*^9}}], Cell[CellGroupData[{ Cell["This Notebook", "Subsubsection", CellChangeTimes->{{3.6954750910664797`*^9, 3.695475092737351*^9}}], Cell[BoxData[ RowBox[{"NetModel", "[", RowBox[{ "\"\\"", ",", "\"\\""}], "]"}]], "Input", CellChangeTimes->{{3.696656935596855*^9, 3.6966569364445457`*^9}, 3.696768427361453*^9, 3.696768595763381*^9, 3.7003902688083363`*^9, { 3.71378432216816*^9, 3.713784326289772*^9}, {3.714994432403721*^9, 3.714994433006246*^9}, 3.714996108003089*^9, {3.7164714029327*^9, 3.716471403982383*^9}, {3.72476467564093*^9, 3.724764688194697*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["Untrained Net", "Subsubsection", CellChangeTimes->{{3.6954750978333807`*^9, 3.695475133273511*^9}}], Cell[BoxData[ RowBox[{"NetModel", "[", RowBox[{ "\"\\"", ",", "\"\\""}], "]"}]], "Input", CellChangeTimes->{{3.696656940213286*^9, 3.6966569411083603`*^9}, 3.6967685960955133`*^9, 3.7003902714859753`*^9, 3.7137843290167923`*^9, { 3.714994436582281*^9, 3.7149944375650043`*^9}, 3.714996109008522*^9, 3.716471407187014*^9, 3.724764688197406*^9}] }, Open ]], Cell[CellGroupData[{ Cell["Trained Net", "Subsubsection", CellChangeTimes->{{3.6954751072255173`*^9, 3.6954751086815357`*^9}}], Cell[BoxData[ RowBox[{"NetModel", "[", "\"\\"", "]"}]], "Input", CellChangeTimes->{{3.6966569441649303`*^9, 3.696656946349728*^9}, 3.696768596439824*^9, 3.700390274254551*^9, 3.713784330204133*^9, { 3.71499444050791*^9, 3.714994441068159*^9}, 3.7149961097969723`*^9, 3.7164714084298983`*^9, 3.724764688200266*^9}] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Net Construction", "Section", CellChangeTimes->{3.695625386014464*^9}], Cell[CellGroupData[{ Cell["Internal Functions", "Subsection", CellChangeTimes->{{3.695474631518784*^9, 3.69547463389618*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"convRamp", "[", "convArgs__", "]"}], ":=", RowBox[{"{", RowBox[{ RowBox[{"ConvolutionLayer", "[", "convArgs", "]"}], ",", RowBox[{"ElementwiseLayer", "[", "Ramp", "]"}]}], "}"}]}]], "Input", CellLabel->"In[173]:="], Cell[BoxData[ RowBox[{ RowBox[{"linRamp", "[", "linArgs__", "]"}], ":=", RowBox[{"{", RowBox[{ RowBox[{"LinearLayer", "[", "linArgs", "]"}], ",", RowBox[{"ElementwiseLayer", "[", "Ramp", "]"}]}], "}"}]}]], "Input", CellChangeTimes->{{3.714994665092868*^9, 3.714994710946357*^9}}, CellLabel->"In[174]:="], Cell[BoxData[ RowBox[{ RowBox[{"localFeatBranch", "=", RowBox[{"NetChain", "[", RowBox[{"Join", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"convRamp", "[", RowBox[{"64", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}], ",", RowBox[{"\"\\"", "\[Rule]", "2"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"128", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"128", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}], ",", RowBox[{"\"\\"", "\[Rule]", "2"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"256", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"256", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}], ",", RowBox[{"\"\\"", "\[Rule]", "2"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"512", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"512", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"256", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}]}], "\[IndentingNewLine]", "]"}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.71499472725423*^9, 3.714994751261444*^9}, { 3.714994854394392*^9, 3.714994984299304*^9}, {3.7149950215267467`*^9, 3.71499504375392*^9}, 3.7149962927672987`*^9, {3.714997049185919*^9, 3.714997054985908*^9}}, CellLabel->"In[175]:="], Cell[BoxData[ RowBox[{ RowBox[{"globalFeatBranch", "=", RowBox[{"NetChain", "[", RowBox[{"Join", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"ResizeLayer", "[", RowBox[{"{", RowBox[{"224", ",", "224"}], "}"}], "]"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"64", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}], ",", RowBox[{"\"\\"", "\[Rule]", "2"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"128", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"128", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}], ",", RowBox[{"\"\\"", "\[Rule]", "2"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"256", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"256", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}], ",", RowBox[{"\"\\"", "\[Rule]", "2"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"512", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"512", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}], ",", RowBox[{"\"\\"", "\[Rule]", "2"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"512", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"512", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}], ",", RowBox[{"\"\\"", "\[Rule]", "2"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"512", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"FlattenLayer", "[", "]"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"linRamp", "[", "1024", "]"}], ",", "\[IndentingNewLine]", RowBox[{"linRamp", "[", "512", "]"}], ",", "\[IndentingNewLine]", RowBox[{"linRamp", "[", "256", "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"ReplicateLayer", "[", RowBox[{ RowBox[{"{", RowBox[{"Automatic", ",", "Automatic"}], "}"}], ",", "2", ",", RowBox[{"\"\\"", "\[Rule]", RowBox[{"{", RowBox[{"256", ",", "28", ",", "28"}], "}"}]}]}], "]"}], "}"}]}], "\[IndentingNewLine]", "]"}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.714996220496026*^9, 3.714996225515007*^9}}, CellLabel->"In[176]:="], Cell[BoxData[ RowBox[{ RowBox[{"colorizationBranch", "=", RowBox[{"NetChain", "[", RowBox[{"Join", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"convRamp", "[", RowBox[{"256", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"128", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"ResizeLayer", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Scaled", "[", "2", "]"}], ",", RowBox[{"Scaled", "[", "2", "]"}]}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "\"\\""}]}], "]"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"64", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"64", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"ResizeLayer", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Scaled", "[", "2", "]"}], ",", RowBox[{"Scaled", "[", "2", "]"}]}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "\"\\""}]}], "]"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"convRamp", "[", RowBox[{"32", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"ConvolutionLayer", "[", RowBox[{"2", ",", RowBox[{"{", RowBox[{"3", ",", "3"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "1"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"ElementwiseLayer", "[", "LogisticSigmoid", "]"}], ",", "\[IndentingNewLine]", RowBox[{"ResizeLayer", "[", RowBox[{"{", RowBox[{ RowBox[{"Scaled", "[", "2", "]"}], ",", RowBox[{"Scaled", "[", "2", "]"}]}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"ElementwiseLayer", "[", RowBox[{ RowBox[{ RowBox[{"2", "#"}], "-", "1"}], "&"}], "]"}]}], "\[IndentingNewLine]", "}"}]}], "\[IndentingNewLine]", "]"}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.714995190294697*^9, 3.7149952809727907`*^9}, { 3.714995554671898*^9, 3.714995635395563*^9}, {3.714995682738267*^9, 3.71499595129805*^9}, 3.7149962548258877`*^9, {3.714997146527231*^9, 3.714997146585417*^9}}, CellLabel->"In[177]:="] }, Closed]], Cell[CellGroupData[{ Cell["Final Net", "Subsection", CellChangeTimes->{{3.695106779945572*^9, 3.695106780985426*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"colorNet", "=", RowBox[{"NetGraph", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"localFeatBranch", ",", "globalFeatBranch", ",", RowBox[{"CatenateLayer", "[", "]"}], ",", "colorizationBranch"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"NetPort", "[", "\"\\"", "]"}], "\[Rule]", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}], "\[Rule]", RowBox[{"3", "\[Rule]", "4"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"\"\\"", "\[Rule]", RowBox[{"NetEncoder", "[", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"{", RowBox[{"224", ",", "224"}], "}"}], ",", RowBox[{"\"\\"", "\[Rule]", "0.445054"}], ",", RowBox[{"\"\\"", "\[Rule]", "\"\\""}]}], "}"}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.70039031014128*^9, 3.700390318270293*^9}, { 3.700401138237893*^9, 3.7004011383263493`*^9}, {3.713784420700962*^9, 3.71378442253986*^9}, {3.714995980728014*^9, 3.7149960771943607`*^9}, { 3.714996166968326*^9, 3.714996170023856*^9}}, CellLabel->"In[178]:="], Cell[BoxData[ TagBox[ TemplateBox[{RowBox[{ StyleBox[ TagBox["NetGraph", "SummaryHead"], "NonInterpretableSummary"], StyleBox["[", "NonInterpretableSummary"], DynamicModuleBox[{Typeset`open = False}, PanelBox[ PaneSelectorBox[{False -> GridBox[{{ PaneBox[ ButtonBox[ DynamicBox[ FEPrivate`FrontEndResource[ "FEBitmaps", "SquarePlusIconMedium"]], ButtonFunction :> (Typeset`open = True), Appearance -> None, Evaluator -> Automatic, Method -> "Preemptive"], Alignment -> {Center, Center}, ImageSize -> {Automatic, 24}], OverlayBox[{ GraphicsBox[{ Thickness[0.0149], { GrayLevel[0.6], Thickness[0.03], Opacity[1.], JoinForm[{"Miter", 10.}], JoinedCurveBox[{{{1, 4, 3}}}, {{{18., 37.}, {18., 37.}, { 18.5, 27.5}, {35., 27.}}}, CurveClosed -> {0}], JoinedCurveBox[{{{1, 4, 3}}}, {{{50., 37.}, {50., 37.}, { 49.5, 27.5}, {33., 27.}}}, CurveClosed -> {0}], JoinedCurveBox[{{{1, 4, 3}}}, {{{18., 16.}, {18., 16.}, { 18.5, 25.5}, {35., 26.}}}, CurveClosed -> {0}]}, { FaceForm[ GrayLevel[0.9]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 15.5, 40.5}, {22.5, 40.5}, {22.5, 33.5}, {15.5, 33.5}}}]}, { FaceForm[ GrayLevel[0.6]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{23., 41.}, {15., 41.}, { 15., 33.}, {23., 33.}}, {{22., 34.}, {16., 34.}, {16., 40.}, {22., 40.}}}]}, { FaceForm[ GrayLevel[0.9]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 15.5, 19.5}, {22.5, 19.5}, {22.5, 12.5}, {15.5, 12.5}}}]}, { FaceForm[ GrayLevel[0.6]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{23., 20.}, {15., 20.}, { 15., 12.}, {23., 12.}}, {{22., 13.}, {16., 13.}, {16., 19.}, {22., 19.}}}]}, { FaceForm[ GrayLevel[0.9]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 30.5, 30.5}, {37.5, 30.5}, {37.5, 23.5}, {30.5, 23.5}}}]}, { FaceForm[ GrayLevel[0.6]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{38., 31.}, {30., 31.}, { 30., 23.}, {38., 23.}}, {{37., 24.}, {31., 24.}, {31., 30.}, {37., 30.}}}]}, { FaceForm[ GrayLevel[0.9]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 45.5, 40.5}, {52.5, 40.5}, {52.5, 33.5}, {45.5, 33.5}}}]}, { FaceForm[ GrayLevel[0.6]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{53., 41.}, {45., 41.}, { 45., 33.}, {53., 33.}}, {{52., 34.}, {46., 34.}, {46., 40.}, {52., 40.}}}]}}, ImageMargins -> 0, ImageSize -> {36, Automatic}, PlotRangePadding -> 0, BaseStyle -> GrayLevel[0.6]], StyleBox["uninitialized", RGBColor[0.66, 0, 0], FontSize -> 8, FontFamily -> "Roboto", Background -> GrayLevel[1, 0.65]]}, Alignment -> {Center, Scaled[0.0001]}], GridBox[{{ StyleBox[ TemplateBox[{ TemplateBox[{ StyleBox["\"Input\"", GrayLevel[0], StripOnInput -> False], "\" \"", "\"port\""}, "RowDefault"], "\":\""}, "RowDefault"], "SummaryItemAnnotation"], StyleBox["\"image\"", "SummaryItem"]}, { StyleBox[ TemplateBox[{ TemplateBox[{ StyleBox["\"Output\"", GrayLevel[0], StripOnInput -> False], "\" \"", "\"port\""}, "RowDefault"], "\":\""}, "RowDefault"], "SummaryItemAnnotation"], StyleBox[ TemplateBox[{"\"array\"", "\" \"", StyleBox[ TemplateBox[{ "\"(\"", "\"\[VeryThinSpace]\"", "\"size\"", "\":\"", "\" \"", TemplateBox[{ "\[Times]", "\"\[Times]\"", "\"2\"", "\"224\"", "\"224\""}, "RowWithSeparators"], "\"\[VeryThinSpace]\"", "\")\""}, "RowDefault"], GrayLevel[0.5], StripOnInput -> False]}, "RowDefault"], "SummaryItem"]}, { StyleBox[ TemplateBox[{"\"Number of layers\"", "\":\""}, "RowDefault"], "SummaryItemAnnotation"], StyleBox["4", "SummaryItem"]}}, BaselinePosition -> {2, 1}, GridBoxAlignment -> { "Columns" -> {{Left}}, "Rows" -> {{Automatic}}}, GridBoxItemSize -> { "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}, GridBoxSpacings -> { "Columns" -> {{2}}, "Rows" -> {{Automatic}}}]}}, GridBoxAlignment -> {"Rows" -> {{Top}}}, GridBoxItemSize -> { "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}, GridFrameMargins -> {{0, 0}, {0, 0}}, BaselinePosition -> {1, 3}], True -> GridBox[{{ PaneBox[ ButtonBox[ DynamicBox[ FEPrivate`FrontEndResource[ "FEBitmaps", "SquareMinusIconMedium"]], ButtonFunction :> (Typeset`open = False), Appearance -> None, Evaluator -> Automatic, Method -> "Preemptive"], Alignment -> {Center, Center}, ImageSize -> {Automatic, 24}], OverlayBox[{ GraphicsBox[{ Thickness[0.0149], { GrayLevel[0.6], Thickness[0.03], Opacity[1.], JoinForm[{"Miter", 10.}], JoinedCurveBox[{{{1, 4, 3}}}, {{{18., 37.}, {18., 37.}, { 18.5, 27.5}, {35., 27.}}}, CurveClosed -> {0}], JoinedCurveBox[{{{1, 4, 3}}}, {{{50., 37.}, {50., 37.}, { 49.5, 27.5}, {33., 27.}}}, CurveClosed -> {0}], JoinedCurveBox[{{{1, 4, 3}}}, {{{18., 16.}, {18., 16.}, { 18.5, 25.5}, {35., 26.}}}, CurveClosed -> {0}]}, { FaceForm[ GrayLevel[0.9]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 15.5, 40.5}, {22.5, 40.5}, {22.5, 33.5}, {15.5, 33.5}}}]}, { FaceForm[ GrayLevel[0.6]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{23., 41.}, {15., 41.}, { 15., 33.}, {23., 33.}}, {{22., 34.}, {16., 34.}, {16., 40.}, {22., 40.}}}]}, { FaceForm[ GrayLevel[0.9]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 15.5, 19.5}, {22.5, 19.5}, {22.5, 12.5}, {15.5, 12.5}}}]}, { FaceForm[ GrayLevel[0.6]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{23., 20.}, {15., 20.}, { 15., 12.}, {23., 12.}}, {{22., 13.}, {16., 13.}, {16., 19.}, {22., 19.}}}]}, { FaceForm[ GrayLevel[0.9]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 30.5, 30.5}, {37.5, 30.5}, {37.5, 23.5}, {30.5, 23.5}}}]}, { FaceForm[ GrayLevel[0.6]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{38., 31.}, {30., 31.}, { 30., 23.}, {38., 23.}}, {{37., 24.}, {31., 24.}, {31., 30.}, {37., 30.}}}]}, { FaceForm[ GrayLevel[0.9]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 45.5, 40.5}, {52.5, 40.5}, {52.5, 33.5}, {45.5, 33.5}}}]}, { FaceForm[ GrayLevel[0.6]], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{53., 41.}, {45., 41.}, { 45., 33.}, {53., 33.}}, {{52., 34.}, {46., 34.}, {46., 40.}, {52., 40.}}}]}}, ImageMargins -> 0, ImageSize -> {36, Automatic}, PlotRangePadding -> 0, BaseStyle -> GrayLevel[0.6]], StyleBox["uninitialized", RGBColor[0.66, 0, 0], FontSize -> 8, FontFamily -> "Roboto", Background -> GrayLevel[1, 0.65]]}, Alignment -> {Center, Scaled[0.0001]}], GridBox[{{ DynamicModuleBox[{ NeuralNetworks`Private`NetGraph`selection = None}, GridBox[{{ TagBox[ GraphicsBox[{{ GrayLevel[0.7], { LineBox[{{-4., 2.4492935982947064`*^-16}, {-3., 1.8369701987210297`*^-16}}], LineBox[{{-4., 2.4492935982947064`*^-16}, {-3., 1.0000000000000002`}}], LineBox[{{-3., 1.8369701987210297`*^-16}, {-2., 1.2246467991473532`*^-16}}], LineBox[{{-3., 1.0000000000000002`}, {-2., 1.2246467991473532`*^-16}}], LineBox[{{-2., 1.2246467991473532`*^-16}, {-1., 6.123233995736766*^-17}}], LineBox[{{-1., 6.123233995736766*^-17}, {0., 0.}}]}}, { InsetBox[ GraphicsBox[ StyleBox[ PolygonBox[{{-1., 0.3333333333333333}, {0., 0.}, {-1., -0.3333333333333333}, {-0.6666666666666666, 0.}, {-1., 0.3333333333333333}}], GrayLevel[0.7], StripOnInput -> False]], {-3.4, 2.0818995585505003`*^-16}, {-0.25, 0}, Offset[8], {1., -6.123233995736767*^-17}], InsetBox[ GraphicsBox[ StyleBox[ PolygonBox[{{-1., 0.3333333333333333}, {0., 0.}, {-1., -0.3333333333333333}, {-0.6666666666666666, 0.}, {-1., 0.3333333333333333}}], GrayLevel[0.7], StripOnInput -> False]], {-3.4, 0.6000000000000002}, {-0.25, 0}, Offset[8], {1., 1.}], InsetBox[ GraphicsBox[ StyleBox[ PolygonBox[{{-1., 0.3333333333333333}, {0., 0.}, {-1., -0.3333333333333333}, {-0.6666666666666666, 0.}, {-1., 0.3333333333333333}}], GrayLevel[0.7], StripOnInput -> False]], {-2.4000000000000004`, 1.4695761589768238`*^-16}, {-0.25, 0}, Offset[8], {1., -6.123233995736765*^-17}], InsetBox[ GraphicsBox[ StyleBox[ PolygonBox[{{-1., 0.3333333333333333}, {0., 0.}, {-1., -0.3333333333333333}, {-0.6666666666666666, 0.}, {-1., 0.3333333333333333}}], GrayLevel[0.7], StripOnInput -> False]], {-2.4000000000000004`, 0.4000000000000002}, {-0.25, 0}, Offset[8], {1., -1.}], InsetBox[ GraphicsBox[ StyleBox[ PolygonBox[{{-1., 0.3333333333333333}, {0., 0.}, {-1., -0.3333333333333333}, {-0.6666666666666666, 0.}, {-1., 0.3333333333333333}}], GrayLevel[0.7], StripOnInput -> False]], {-1.4, 8.572527594031473*^-17}, {-0.25, 0}, Offset[8], {1., -6.123233995736766*^-17}], InsetBox[ GraphicsBox[ StyleBox[ PolygonBox[{{-1., 0.3333333333333333}, {0., 0.}, {-1., -0.3333333333333333}, {-0.6666666666666666, 0.}, {-1., 0.3333333333333333}}], GrayLevel[0.7], StripOnInput -> False]], {-0.4, 2.4492935982947065`*^-17}, {-0.25, 0}, Offset[8], {1., -6.123233995736766*^-17}]}, { EdgeForm[ AbsoluteThickness[1]], FontSize -> 10, { TagBox[ TagBox[ TooltipBox[{ GrayLevel[0.85], EdgeForm[ GrayLevel[0.5]], DiskBox[{-4., 2.4492935982947064`*^-16}, Offset[{2, 2}]]}, TagBox[ GridBox[{{ StyleBox["\"Input\"", Bold, StripOnInput -> False]}}, GridBoxAlignment -> {"Columns" -> {{Left}}}, DefaultBaseStyle -> "Column", GridBoxItemSize -> { "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Column"]], Annotation[#, Column[{ Style["Input", Bold]}], "Tooltip"]& ], EventHandlerTag[{ "MouseClicked" :> ( NeuralNetworks`Private`NetGraph`selection = 1), PassEventsUp -> False, Method -> "Preemptive", PassEventsDown -> Automatic}]], TagBox[ TagBox[ TooltipBox[{{ FaceForm[ RGBColor[ 0.9206666666666666, 0.7666666666666667, 0.7666666666666667]], EdgeForm[ RGBColor[0.881, 0.65, 0.65]], RectangleBox[ Offset[{-12, -12}, {-3., 1.8369701987210297`*^-16}], Offset[{12, 12}, {-3., 1.8369701987210297`*^-16}]]}, InsetBox[ GraphicsBox[{ Thickness[0.014925373134328358`], { GrayLevel[0.5], Thickness[0.018686567164179105`], Opacity[1.], JoinForm[{"Miter", 10.}], JoinedCurveBox[{{{0, 2, 0}}}, {{{23., 91.5}, {30., 91.5}}}, CurveClosed -> {0}]}, { GrayLevel[0.5], Thickness[0.018686567164179105`], Opacity[1.], JoinForm[{"Miter", 10.}], JoinedCurveBox[{{{0, 2, 0}}}, {{{37., 91.5}, {44., 91.5}}}, CurveClosed -> {0}]}, { FaceForm[{ GrayLevel[0.7], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 15.5, 103.5}, {23.5, 103.5}, {23.5, 79.5}, {15.5, 79.5}}}]}, { FaceForm[{ GrayLevel[0.4], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{24., 104.}, {15., 104.}, { 15., 79.}, {24., 79.}}, {{23., 80.}, {16., 80.}, {16., 103.}, {23., 103.}}}]}, { FaceForm[{ GrayLevel[0.7], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 29.5, 103.5}, {37.5, 103.5}, {37.5, 79.5}, {29.5, 79.5}}}]}, { FaceForm[{ GrayLevel[0.4], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{38., 104.}, {29., 104.}, { 29., 79.}, {38., 79.}}, {{37., 80.}, {30., 80.}, {30., 103.}, {37., 103.}}}]}, { FaceForm[{ GrayLevel[0.7], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 43.5, 103.5}, {51.5, 103.5}, {51.5, 79.5}, {43.5, 79.5}}}]}, { FaceForm[{ GrayLevel[0.4], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{52., 104.}, {43., 104.}, { 43., 79.}, {52., 79.}}, {{51., 80.}, {44., 80.}, {44., 103.}, {51., 103.}}}]}}, PlotRange -> All, AspectRatio -> 0.7, PlotRangePadding -> 1, ImagePadding -> 0, ImageSize -> 16, ImageMargins -> 0., BaseStyle -> GrayLevel[0.4]], {-3., 1.8369701987210297`*^-16}]}, TagBox[ GridBox[{{ StyleBox["\"1\"", Bold, StripOnInput -> False]}, { StyleBox[ TagBox[ RowBox[{"NetChain", "[", RowBox[{"\[LeftSkeleton]", "16", "\[RightSkeleton]"}], "]"}], HoldForm], FontFamily -> "Source Code Pro", ShowStringCharacters -> True, StripOnInput -> False]}}, GridBoxAlignment -> {"Columns" -> {{Left}}}, DefaultBaseStyle -> "Column", GridBoxItemSize -> { "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Column"]], Annotation[#, Column[{ Style["1", Bold], Style[ HoldForm[ NetChain[ Skeleton[16]]], FontFamily -> "Source Code Pro", ShowStringCharacters -> True]}], "Tooltip"]& ], EventHandlerTag[{ "MouseClicked" :> ( NeuralNetworks`Private`NetGraph`selection = 2), PassEventsUp -> False, Method -> "Preemptive", PassEventsDown -> Automatic}]], TagBox[ TagBox[ TooltipBox[{{ FaceForm[ RGBColor[ 0.9206666666666666, 0.7666666666666667, 0.7666666666666667]], EdgeForm[ RGBColor[0.881, 0.65, 0.65]], RectangleBox[ Offset[{-12, -12}, {-3., 1.0000000000000002`}], Offset[{12, 12}, {-3., 1.0000000000000002`}]]}, InsetBox[ GraphicsBox[{ Thickness[0.014925373134328358`], { GrayLevel[0.5], Thickness[0.018686567164179105`], Opacity[1.], JoinForm[{"Miter", 10.}], JoinedCurveBox[{{{0, 2, 0}}}, {{{23., 91.5}, {30., 91.5}}}, CurveClosed -> {0}]}, { GrayLevel[0.5], Thickness[0.018686567164179105`], Opacity[1.], JoinForm[{"Miter", 10.}], JoinedCurveBox[{{{0, 2, 0}}}, {{{37., 91.5}, {44., 91.5}}}, CurveClosed -> {0}]}, { FaceForm[{ GrayLevel[0.7], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 15.5, 103.5}, {23.5, 103.5}, {23.5, 79.5}, {15.5, 79.5}}}]}, { FaceForm[{ GrayLevel[0.4], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{24., 104.}, {15., 104.}, { 15., 79.}, {24., 79.}}, {{23., 80.}, {16., 80.}, {16., 103.}, {23., 103.}}}]}, { FaceForm[{ GrayLevel[0.7], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 29.5, 103.5}, {37.5, 103.5}, {37.5, 79.5}, {29.5, 79.5}}}]}, { FaceForm[{ GrayLevel[0.4], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{38., 104.}, {29., 104.}, { 29., 79.}, {38., 79.}}, {{37., 80.}, {30., 80.}, {30., 103.}, {37., 103.}}}]}, { FaceForm[{ GrayLevel[0.7], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 43.5, 103.5}, {51.5, 103.5}, {51.5, 79.5}, {43.5, 79.5}}}]}, { FaceForm[{ GrayLevel[0.4], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{52., 104.}, {43., 104.}, { 43., 79.}, {52., 79.}}, {{51., 80.}, {44., 80.}, {44., 103.}, {51., 103.}}}]}}, PlotRange -> All, AspectRatio -> 0.7, PlotRangePadding -> 1, ImagePadding -> 0, ImageSize -> 16, ImageMargins -> 0., BaseStyle -> GrayLevel[0.4]], {-3., 1.0000000000000002`}]}, TagBox[ GridBox[{{ StyleBox["\"2\"", Bold, StripOnInput -> False]}, { StyleBox[ TagBox[ RowBox[{"NetChain", "[", RowBox[{"\[LeftSkeleton]", "29", "\[RightSkeleton]"}], "]"}], HoldForm], FontFamily -> "Source Code Pro", ShowStringCharacters -> True, StripOnInput -> False]}}, GridBoxAlignment -> {"Columns" -> {{Left}}}, DefaultBaseStyle -> "Column", GridBoxItemSize -> { "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Column"]], Annotation[#, Column[{ Style["2", Bold], Style[ HoldForm[ NetChain[ Skeleton[29]]], FontFamily -> "Source Code Pro", ShowStringCharacters -> True]}], "Tooltip"]& ], EventHandlerTag[{ "MouseClicked" :> ( NeuralNetworks`Private`NetGraph`selection = 3), PassEventsUp -> False, Method -> "Preemptive", PassEventsDown -> Automatic}]], TagBox[ TagBox[ TooltipBox[{{ FaceForm[ RGBColor[0.9, 0.9, 0.9]], EdgeForm[ GrayLevel[0.85]], RectangleBox[ Offset[{-10, -10}, {-2., 1.2246467991473532`*^-16}], Offset[{10, 10}, {-2., 1.2246467991473532`*^-16}]]}, InsetBox[ FormBox["\"C\"", TraditionalForm], Offset[{0, -1}, {-2., 1.2246467991473532`*^-16}]]}, TagBox[ GridBox[{{ StyleBox["\"3\"", Bold, StripOnInput -> False]}, { StyleBox[ TagBox[ RowBox[{"CatenateLayer", "[", RowBox[{"\"Inputs\"", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"256", ",", "28", ",", "28"}], "}"}], ",", RowBox[{"{", RowBox[{"256", ",", "28", ",", "28"}], "}"}]}], "}"}]}], "]"}], HoldForm], FontFamily -> "Source Code Pro", ShowStringCharacters -> True, StripOnInput -> False]}}, GridBoxAlignment -> {"Columns" -> {{Left}}}, DefaultBaseStyle -> "Column", GridBoxItemSize -> { "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Column"]], Annotation[#, Column[{ Style["3", Bold], Style[ HoldForm[ CatenateLayer[ "Inputs" -> {{256, 28, 28}, {256, 28, 28}}]], FontFamily -> "Source Code Pro", ShowStringCharacters -> True]}], "Tooltip"]& ], EventHandlerTag[{ "MouseClicked" :> ( NeuralNetworks`Private`NetGraph`selection = 4), PassEventsUp -> False, Method -> "Preemptive", PassEventsDown -> Automatic}]], TagBox[ TagBox[ TooltipBox[{{ FaceForm[ RGBColor[ 0.9206666666666666, 0.7666666666666667, 0.7666666666666667]], EdgeForm[ RGBColor[0.881, 0.65, 0.65]], RectangleBox[ Offset[{-12, -12}, {-1., 6.123233995736766*^-17}], Offset[{12, 12}, {-1., 6.123233995736766*^-17}]]}, InsetBox[ GraphicsBox[{ Thickness[0.014925373134328358`], { GrayLevel[0.5], Thickness[0.018686567164179105`], Opacity[1.], JoinForm[{"Miter", 10.}], JoinedCurveBox[{{{0, 2, 0}}}, {{{23., 91.5}, {30., 91.5}}}, CurveClosed -> {0}]}, { GrayLevel[0.5], Thickness[0.018686567164179105`], Opacity[1.], JoinForm[{"Miter", 10.}], JoinedCurveBox[{{{0, 2, 0}}}, {{{37., 91.5}, {44., 91.5}}}, CurveClosed -> {0}]}, { FaceForm[{ GrayLevel[0.7], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 15.5, 103.5}, {23.5, 103.5}, {23.5, 79.5}, {15.5, 79.5}}}]}, { FaceForm[{ GrayLevel[0.4], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{24., 104.}, {15., 104.}, { 15., 79.}, {24., 79.}}, {{23., 80.}, {16., 80.}, {16., 103.}, {23., 103.}}}]}, { FaceForm[{ GrayLevel[0.7], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 29.5, 103.5}, {37.5, 103.5}, {37.5, 79.5}, {29.5, 79.5}}}]}, { FaceForm[{ GrayLevel[0.4], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{38., 104.}, {29., 104.}, { 29., 79.}, {38., 79.}}, {{37., 80.}, {30., 80.}, {30., 103.}, {37., 103.}}}]}, { FaceForm[{ GrayLevel[0.7], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{ 43.5, 103.5}, {51.5, 103.5}, {51.5, 79.5}, {43.5, 79.5}}}]}, { FaceForm[{ GrayLevel[0.4], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}, {{0, 2, 0}, {0, 1, 0}, {0, 1, 0}}}, {{{52., 104.}, {43., 104.}, { 43., 79.}, {52., 79.}}, {{51., 80.}, {44., 80.}, {44., 103.}, {51., 103.}}}]}}, PlotRange -> All, AspectRatio -> 0.7, PlotRangePadding -> 1, ImagePadding -> 0, ImageSize -> 16, ImageMargins -> 0., BaseStyle -> GrayLevel[0.4]], {-1., 6.123233995736766*^-17}]}, TagBox[ GridBox[{{ StyleBox["\"4\"", Bold, StripOnInput -> False]}, { StyleBox[ TagBox[ RowBox[{"NetChain", "[", RowBox[{"\[LeftSkeleton]", "16", "\[RightSkeleton]"}], "]"}], HoldForm], FontFamily -> "Source Code Pro", ShowStringCharacters -> True, StripOnInput -> False]}}, GridBoxAlignment -> {"Columns" -> {{Left}}}, DefaultBaseStyle -> "Column", GridBoxItemSize -> { "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Column"]], Annotation[#, Column[{ Style["4", Bold], Style[ HoldForm[ NetChain[ Skeleton[16]]], FontFamily -> "Source Code Pro", ShowStringCharacters -> True]}], "Tooltip"]& ], EventHandlerTag[{ "MouseClicked" :> ( NeuralNetworks`Private`NetGraph`selection = 5), PassEventsUp -> False, Method -> "Preemptive", PassEventsDown -> Automatic}]], TagBox[ TagBox[ TooltipBox[{ GrayLevel[0.85], EdgeForm[ GrayLevel[0.5]], DiskBox[{0., 0.}, Offset[{2, 2}]]}, TagBox[ GridBox[{{ StyleBox["\"Output\"", Bold, StripOnInput -> False]}}, GridBoxAlignment -> {"Columns" -> {{Left}}}, DefaultBaseStyle -> "Column", GridBoxItemSize -> { "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Column"]], Annotation[#, Column[{ Style["Output", Bold]}], "Tooltip"]& ], EventHandlerTag[{ "MouseClicked" :> ( NeuralNetworks`Private`NetGraph`selection = 6), PassEventsUp -> False, Method -> "Preemptive", PassEventsDown -> Automatic}]]}}, { StyleBox[{{ InsetBox[ FormBox["\"Input\"", TraditionalForm], Offset[{0, -7}, {-4., 2.4492935982947064`*^-16}], {0, 1.}, Automatic, {1, 0}], InsetBox[ FormBox["\"1\"", TraditionalForm], Offset[{0, -15}, {-3., 1.8369701987210297`*^-16}], { 0, 1.}, Automatic, {1, 0}], InsetBox[ FormBox["\"2\"", TraditionalForm], Offset[{0, -15}, {-3., 1.0000000000000002`}], {0, 1.}, Automatic, {1, 0}], InsetBox[ FormBox["\"3\"", TraditionalForm], Offset[{0, -13}, {-2., 1.2246467991473532`*^-16}], { 0, 1.}, Automatic, {1, 0}], InsetBox[ FormBox["\"4\"", TraditionalForm], Offset[{0, -15}, {-1., 6.123233995736766*^-17}], {0, 1.}, Automatic, {1, 0}], InsetBox[ FormBox["\"Output\"", TraditionalForm], Offset[{0, -7}, {0., 0.}], {0, 1.}, Automatic, {1, 0}]}}, FontColor -> GrayLevel[0.5], StripOnInput -> False], StyleBox[{ InsetBox[ FormBox[ TemplateBox[{ "\[Cross]", "\"\[Cross]\"", "\"1\"", "\"224\"", "\"224\""}, "RowWithSeparators"], TraditionalForm], Offset[{3.367778697655222*^-16, 5.5}, {-3.4, 2.0818995585505003`*^-16}], {0., -0.17}, Automatic, { 1., -6.123233995736767*^-17}], InsetBox[ FormBox[ TemplateBox[{ "\[Cross]", "\"\[Cross]\"", "\"1\"", "\"224\"", "\"224\""}, "RowWithSeparators"], TraditionalForm], Offset[{-3.889087296526011, 3.889087296526011}, {-3.4, 0.6000000000000002}], {0., -0.17}, Automatic, { 0.7071067811865475, 0.7071067811865475}], InsetBox[ FormBox[ TemplateBox[{ "\[Cross]", "\"\[Cross]\"", "\"256\"", "\"28\"", "\"28\""}, "RowWithSeparators"], TraditionalForm], Offset[{3.3677786976552205`*^-16, 5.5}, {-2.4000000000000004`, 1.4695761589768238`*^-16}], { 0., -0.17}, Automatic, {1., -6.123233995736765*^-17}], InsetBox[ FormBox[ TemplateBox[{ "\[Cross]", "\"\[Cross]\"", "\"256\"", "\"28\"", "\"28\""}, "RowWithSeparators"], TraditionalForm], Offset[{3.889087296526011, 3.889087296526011}, {-2.4000000000000004`, 0.4000000000000002}], {0., -0.17}, Automatic, { 0.7071067811865475, -0.7071067811865475}], InsetBox[ FormBox[ TemplateBox[{ "\[Cross]", "\"\[Cross]\"", "\"512\"", "\"28\"", "\"28\""}, "RowWithSeparators"], TraditionalForm], Offset[{3.3677786976552215`*^-16, 5.5}, {-1.4, 8.572527594031473*^-17}], {0., -0.17}, Automatic, { 1., -6.123233995736766*^-17}], InsetBox[ FormBox[ TemplateBox[{ "\[Cross]", "\"\[Cross]\"", "\"2\"", "\"224\"", "\"224\""}, "RowWithSeparators"], TraditionalForm], Offset[{3.3677786976552215`*^-16, 5.5}, {-0.4, 2.4492935982947065`*^-17}], {0., -0.17}, Automatic, { 1., -6.123233995736766*^-17}]}, FontColor -> GrayLevel[0.7], FontSize -> 8, FontWeight -> "Thin", StripOnInput -> False]}, { FaceForm[None], EdgeForm[{ Dashing[{0, Small}], GrayLevel[0.5], Thickness[Large]}], PolygonBox[ Dynamic[ If[ Not[ IntegerQ[NeuralNetworks`Private`NetGraph`selection]], {}, GeneralUtilities`Graphics`PackagePrivate`makeOffsetSquare[ Part[{{-4., 2.4492935982947064`*^-16}, {-3., 1.8369701987210297`*^-16}, {-3., 1.0000000000000002`}, {-2., 1.2246467991473532`*^-16}, {-1., 6.123233995736766*^-17}, {0., 0.}}, NeuralNetworks`Private`NetGraph`selection], 3 + {0.5, 0.5} Part[{8, 24, 24, 20, 24, 8}, NeuralNetworks`Private`NetGraph`selection], {-0.5, 0.5}]]]]}}, ImageSize -> {276., 102.00000000000001`}, AspectRatio -> Full, PlotRangePadding -> 0, ImagePadding -> {{28., 28.}, {28.999999999999996`, 18.}}, ImageMargins -> {{0, 0}, {0, 0}}, BaseStyle -> { TooltipBoxOptions -> {TooltipDelay -> 0.08}}], EventHandlerTag[{ "MouseClicked" :> ( NeuralNetworks`Private`NetGraph`selection = None), Method -> "Preemptive", PassEventsDown -> Automatic, PassEventsUp -> True}]]}, { DynamicBox[ If[ IntegerQ[NeuralNetworks`Private`NetGraph`selection], NeuralNetworks`Private`NetGraph`vpathInfo[ Part[{ NeuralNetworks`NetPath["Inputs", "Input"], NeuralNetworks`NetPath["Nodes", "1"], NeuralNetworks`NetPath["Nodes", "2"], NeuralNetworks`NetPath["Nodes", "3"], NeuralNetworks`NetPath["Nodes", "4"], NeuralNetworks`NetPath["Outputs", "Output"]}, NeuralNetworks`Private`NetGraph`selection], Association[ "Input" -> Association[ "Form" -> NeuralNetworks`TensorT[{1, 224, 224}, NeuralNetworks`RealT], "Type" -> "Image", "ImageSize" -> {224, 224}, "ColorSpace" -> "Grayscale", "ColorChannels" -> 1, "Interleaving" -> False, "MeanImage" -> 0.445054, "VarianceImage" -> None, "$Version" -> "12.0.7"]], Association[ "Output" -> NeuralNetworks`TensorT[{2, 224, 224}, NeuralNetworks`RealT]], Association[ "1" -> Association[ "Type" -> "Chain", "Nodes" -> Association[ "1" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{64, 1, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{64}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 64, "KernelSize" -> {3, 3}, "Stride" -> {2, 2}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 1, "$InputSize" -> {224, 224}, "$OutputSize" -> {112, 112}, "$WeightsInputChannels" -> 1], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{1, 224, 224}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{64, 112, 112}, NeuralNetworks`RealT]]], "2" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {64, 112, 112}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{64, 112, 112}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{64, 112, 112}, NeuralNetworks`RealT]]], "3" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{128, 64, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{128}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 128, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 64, "$InputSize" -> {112, 112}, "$OutputSize" -> {112, 112}, "$WeightsInputChannels" -> 64], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{64, 112, 112}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]]], "4" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {128, 112, 112}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]]], "5" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{128, 128, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{128}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 128, "KernelSize" -> {3, 3}, "Stride" -> {2, 2}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 128, "$InputSize" -> {112, 112}, "$OutputSize" -> {56, 56}, "$WeightsInputChannels" -> 128], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{128, 56, 56}, NeuralNetworks`RealT]]], "6" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {128, 56, 56}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{128, 56, 56}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{128, 56, 56}, NeuralNetworks`RealT]]], "7" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{256, 128, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{256}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 256, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 128, "$InputSize" -> {56, 56}, "$OutputSize" -> {56, 56}, "$WeightsInputChannels" -> 128], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{128, 56, 56}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]]], "8" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {256, 56, 56}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]]], "9" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{256, 256, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{256}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 256, "KernelSize" -> {3, 3}, "Stride" -> {2, 2}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 256, "$InputSize" -> {56, 56}, "$OutputSize" -> {28, 28}, "$WeightsInputChannels" -> 256], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]]], "10" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {256, 28, 28}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]]], "11" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{512, 256, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{512}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 512, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 256, "$InputSize" -> {28, 28}, "$OutputSize" -> {28, 28}, "$WeightsInputChannels" -> 256], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{512, 28, 28}, NeuralNetworks`RealT]]], "12" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {512, 28, 28}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{512, 28, 28}, NeuralNetworks`RealT]]], "13" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{512, 512, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{512}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 512, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 512, "$InputSize" -> {28, 28}, "$OutputSize" -> {28, 28}, "$WeightsInputChannels" -> 512], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{512, 28, 28}, NeuralNetworks`RealT]]], "14" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {512, 28, 28}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{512, 28, 28}, NeuralNetworks`RealT]]], "15" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{256, 512, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{256}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 256, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 512, "$InputSize" -> {28, 28}, "$OutputSize" -> {28, 28}, "$WeightsInputChannels" -> 512], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]]], "16" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {256, 28, 28}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]]]], "Edges" -> { NeuralNetworks`NetPath["Nodes", "1", "Inputs", "Input"] -> NeuralNetworks`NetPath["Inputs", "Input"], NeuralNetworks`NetPath["Nodes", "2", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "1", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "3", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "2", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "4", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "3", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "5", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "4", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "6", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "5", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "7", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "6", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "8", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "7", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "9", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "8", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "10", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "9", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "11", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "10", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "12", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "11", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "13", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "12", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "14", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "13", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "15", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "14", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "16", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "15", "Outputs", "Output"], NeuralNetworks`NetPath["Outputs", "Output"] -> NeuralNetworks`NetPath[ "Nodes", "16", "Outputs", "Output"]}, "Inputs" -> Association[ "Input" -> NeuralNetworks`TensorT[{1, 224, 224}, NeuralNetworks`RealT]], "Outputs" -> Association[ "Output" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]]], "2" -> Association[ "Type" -> "Chain", "Nodes" -> Association[ "1" -> Association[ "Type" -> "Resize", "Arrays" -> Association[], "Parameters" -> Association["Specification" -> NeuralNetworks`ValidatedParameter[{224, 224}], "Resampling" -> "Linear", "Dimensionality" -> 2, "$Channels" -> 1, "$InputSize" -> {224, 224}, "$OutputSize" -> {224, 224}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{1, 224, 224}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{1, 224, 224}, NeuralNetworks`RealT]]], "2" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{64, 1, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{64}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 64, "KernelSize" -> {3, 3}, "Stride" -> {2, 2}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 1, "$InputSize" -> {224, 224}, "$OutputSize" -> {112, 112}, "$WeightsInputChannels" -> 1], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{1, 224, 224}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{64, 112, 112}, NeuralNetworks`RealT]]], "3" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {64, 112, 112}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{64, 112, 112}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{64, 112, 112}, NeuralNetworks`RealT]]], "4" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{128, 64, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{128}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 128, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 64, "$InputSize" -> {112, 112}, "$OutputSize" -> {112, 112}, "$WeightsInputChannels" -> 64], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{64, 112, 112}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]]], "5" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {128, 112, 112}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]]], "6" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{128, 128, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{128}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 128, "KernelSize" -> {3, 3}, "Stride" -> {2, 2}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 128, "$InputSize" -> {112, 112}, "$OutputSize" -> {56, 56}, "$WeightsInputChannels" -> 128], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{128, 56, 56}, NeuralNetworks`RealT]]], "7" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {128, 56, 56}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{128, 56, 56}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{128, 56, 56}, NeuralNetworks`RealT]]], "8" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{256, 128, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{256}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 256, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 128, "$InputSize" -> {56, 56}, "$OutputSize" -> {56, 56}, "$WeightsInputChannels" -> 128], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{128, 56, 56}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]]], "9" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {256, 56, 56}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]]], "10" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{256, 256, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{256}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 256, "KernelSize" -> {3, 3}, "Stride" -> {2, 2}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 256, "$InputSize" -> {56, 56}, "$OutputSize" -> {28, 28}, "$WeightsInputChannels" -> 256], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]]], "11" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {256, 28, 28}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]]], "12" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{512, 256, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{512}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 512, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 256, "$InputSize" -> {28, 28}, "$OutputSize" -> {28, 28}, "$WeightsInputChannels" -> 256], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{512, 28, 28}, NeuralNetworks`RealT]]], "13" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {512, 28, 28}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{512, 28, 28}, NeuralNetworks`RealT]]], "14" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{512, 512, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{512}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 512, "KernelSize" -> {3, 3}, "Stride" -> {2, 2}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 512, "$InputSize" -> {28, 28}, "$OutputSize" -> {14, 14}, "$WeightsInputChannels" -> 512], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{512, 14, 14}, NeuralNetworks`RealT]]], "15" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {512, 14, 14}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512, 14, 14}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{512, 14, 14}, NeuralNetworks`RealT]]], "16" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{512, 512, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{512}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 512, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 512, "$InputSize" -> {14, 14}, "$OutputSize" -> {14, 14}, "$WeightsInputChannels" -> 512], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512, 14, 14}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{512, 14, 14}, NeuralNetworks`RealT]]], "17" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {512, 14, 14}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512, 14, 14}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{512, 14, 14}, NeuralNetworks`RealT]]], "18" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{512, 512, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{512}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 512, "KernelSize" -> {3, 3}, "Stride" -> {2, 2}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 512, "$InputSize" -> {14, 14}, "$OutputSize" -> {7, 7}, "$WeightsInputChannels" -> 512], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512, 14, 14}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{512, 7, 7}, NeuralNetworks`RealT]]], "19" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {512, 7, 7}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512, 7, 7}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{512, 7, 7}, NeuralNetworks`RealT]]], "20" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{512, 512, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{512}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 512, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 512, "$InputSize" -> {7, 7}, "$OutputSize" -> {7, 7}, "$WeightsInputChannels" -> 512], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512, 7, 7}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{512, 7, 7}, NeuralNetworks`RealT]]], "21" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {512, 7, 7}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512, 7, 7}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{512, 7, 7}, NeuralNetworks`RealT]]], "22" -> Association[ "Type" -> "Flatten", "Arrays" -> Association[], "Parameters" -> Association["Level" -> DirectedInfinity[1]], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512, 7, 7}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{25088}, NeuralNetworks`RealT]]], "23" -> Association[ "Type" -> "Linear", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{1024, 25088}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{1024}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputDimensions" -> {1024}, "$OutputSize" -> 1024, "$InputSize" -> 25088, "$InputDimensions" -> {25088}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{25088}, NeuralNetworks`RealT]], "Outputs" -> Association[ "Output" -> NeuralNetworks`TensorT[{1024}, NeuralNetworks`RealT]]], "24" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {1024}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{1024}, NeuralNetworks`RealT]], "Outputs" -> Association[ "Output" -> NeuralNetworks`TensorT[{1024}, NeuralNetworks`RealT]]], "25" -> Association[ "Type" -> "Linear", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{512, 1024}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{512}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputDimensions" -> {512}, "$OutputSize" -> 512, "$InputSize" -> 1024, "$InputDimensions" -> {1024}], "Inputs" -> Association[ "Input" -> NeuralNetworks`TensorT[{1024}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{512}, NeuralNetworks`RealT]]], "26" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {512}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512}, NeuralNetworks`RealT]], "Outputs" -> Association[ "Output" -> NeuralNetworks`TensorT[{512}, NeuralNetworks`RealT]]], "27" -> Association[ "Type" -> "Linear", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{256, 512}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{256}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputDimensions" -> {256}, "$OutputSize" -> 256, "$InputSize" -> 512, "$InputDimensions" -> {512}], "Inputs" -> Association[ "Input" -> NeuralNetworks`TensorT[{512}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{256}, NeuralNetworks`RealT]]], "28" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {256}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{256}, NeuralNetworks`RealT]], "Outputs" -> Association[ "Output" -> NeuralNetworks`TensorT[{256}, NeuralNetworks`RealT]]], "29" -> Association[ "Type" -> "Replicate", "Arrays" -> Association[], "Parameters" -> Association["Specification" -> NeuralNetworks`ValidatedParameter[{Automatic, Automatic}], "Level" -> 2], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{256}, NeuralNetworks`RealT]], "Outputs" -> Association[ "Output" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]]]], "Edges" -> { NeuralNetworks`NetPath["Nodes", "1", "Inputs", "Input"] -> NeuralNetworks`NetPath["Inputs", "Input"], NeuralNetworks`NetPath["Nodes", "2", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "1", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "3", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "2", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "4", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "3", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "5", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "4", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "6", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "5", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "7", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "6", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "8", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "7", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "9", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "8", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "10", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "9", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "11", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "10", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "12", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "11", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "13", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "12", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "14", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "13", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "15", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "14", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "16", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "15", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "17", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "16", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "18", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "17", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "19", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "18", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "20", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "19", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "21", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "20", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "22", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "21", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "23", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "22", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "24", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "23", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "25", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "24", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "26", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "25", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "27", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "26", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "28", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "27", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "29", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "28", "Outputs", "Output"], NeuralNetworks`NetPath["Outputs", "Output"] -> NeuralNetworks`NetPath[ "Nodes", "29", "Outputs", "Output"]}, "Inputs" -> Association[ "Input" -> NeuralNetworks`TensorT[{1, 224, 224}, NeuralNetworks`RealT]], "Outputs" -> Association[ "Output" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]]], "3" -> Association[ "Type" -> "Catenate", "Arrays" -> Association[], "Parameters" -> Association["Level" -> 1], "Inputs" -> Association[ "1" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT], "2" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association[ "Output" -> NeuralNetworks`TensorT[{512, 28, 28}, NeuralNetworks`RealT]]], "4" -> Association[ "Type" -> "Chain", "Nodes" -> Association[ "1" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{256, 512, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{256}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 256, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 512, "$InputSize" -> {28, 28}, "$OutputSize" -> {28, 28}, "$WeightsInputChannels" -> 512], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{512, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]]], "2" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {256, 28, 28}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]]], "3" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{128, 256, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{128}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 128, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 256, "$InputSize" -> {28, 28}, "$OutputSize" -> {28, 28}, "$WeightsInputChannels" -> 256], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{256, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{128, 28, 28}, NeuralNetworks`RealT]]], "4" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {128, 28, 28}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{128, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{128, 28, 28}, NeuralNetworks`RealT]]], "5" -> Association[ "Type" -> "Resize", "Arrays" -> Association[], "Parameters" -> Association["Specification" -> NeuralNetworks`ValidatedParameter[{ Scaled[2], Scaled[2]}], "Resampling" -> "Nearest", "Dimensionality" -> 2, "$Channels" -> 128, "$InputSize" -> {28, 28}, "$OutputSize" -> {56, 56}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{128, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{128, 56, 56}, NeuralNetworks`RealT]]], "6" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{64, 128, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{64}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 64, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 128, "$InputSize" -> {56, 56}, "$OutputSize" -> {56, 56}, "$WeightsInputChannels" -> 128], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{128, 56, 56}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{64, 56, 56}, NeuralNetworks`RealT]]], "7" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {64, 56, 56}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{64, 56, 56}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{64, 56, 56}, NeuralNetworks`RealT]]], "8" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{64, 64, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{64}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 64, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 64, "$InputSize" -> {56, 56}, "$OutputSize" -> {56, 56}, "$WeightsInputChannels" -> 64], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{64, 56, 56}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{64, 56, 56}, NeuralNetworks`RealT]]], "9" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {64, 56, 56}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{64, 56, 56}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{64, 56, 56}, NeuralNetworks`RealT]]], "10" -> Association[ "Type" -> "Resize", "Arrays" -> Association[], "Parameters" -> Association["Specification" -> NeuralNetworks`ValidatedParameter[{ Scaled[2], Scaled[2]}], "Resampling" -> "Nearest", "Dimensionality" -> 2, "$Channels" -> 64, "$InputSize" -> {56, 56}, "$OutputSize" -> {112, 112}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{64, 56, 56}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{64, 112, 112}, NeuralNetworks`RealT]]], "11" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{32, 64, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{32}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 32, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 64, "$InputSize" -> {112, 112}, "$OutputSize" -> {112, 112}, "$WeightsInputChannels" -> 64], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{64, 112, 112}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{32, 112, 112}, NeuralNetworks`RealT]]], "12" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {32, 112, 112}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{32, 112, 112}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{32, 112, 112}, NeuralNetworks`RealT]]], "13" -> Association[ "Type" -> "Convolution", "Arrays" -> Association["Weights" -> NeuralNetworks`TensorT[{2, 32, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{2}, NeuralNetworks`RealT]]], "Parameters" -> Association["OutputChannels" -> 2, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 32, "$InputSize" -> {112, 112}, "$OutputSize" -> {112, 112}, "$WeightsInputChannels" -> 32], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{32, 112, 112}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{2, 112, 112}, NeuralNetworks`RealT]]], "14" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[LogisticSigmoid], "$Dimensions" -> {2, 112, 112}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{2, 112, 112}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{2, 112, 112}, NeuralNetworks`RealT]]], "15" -> Association[ "Type" -> "Resize", "Arrays" -> Association[], "Parameters" -> Association["Specification" -> NeuralNetworks`ValidatedParameter[{ Scaled[2], Scaled[2]}], "Resampling" -> "Linear", "Dimensionality" -> 2, "$Channels" -> 2, "$InputSize" -> {112, 112}, "$OutputSize" -> {224, 224}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{2, 112, 112}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{2, 224, 224}, NeuralNetworks`RealT]]], "16" -> Association[ "Type" -> "Elementwise", "Arrays" -> Association[], "Parameters" -> Association["Function" -> NeuralNetworks`ValidatedParameter[ NeuralNetworks`Private`ScalarFunctionObject[{ NeuralNetworks`Private`ScalarSymbol[1]}, NeuralNetworks`Private`ScalarSymbol[3], Association[ NeuralNetworks`Private`ScalarSymbol[2] -> {Times, 2., NeuralNetworks`Private`ScalarSymbol[1]}, NeuralNetworks`Private`ScalarSymbol[3] -> {Plus, -1., NeuralNetworks`Private`ScalarSymbol[2]}]]], "$Dimensions" -> {2, 224, 224}], "Inputs" -> Association["Input" -> NeuralNetworks`TensorT[{2, 224, 224}, NeuralNetworks`RealT]], "Outputs" -> Association["Output" -> NeuralNetworks`TensorT[{2, 224, 224}, NeuralNetworks`RealT]]]], "Edges" -> { NeuralNetworks`NetPath["Nodes", "1", "Inputs", "Input"] -> NeuralNetworks`NetPath["Inputs", "Input"], NeuralNetworks`NetPath["Nodes", "2", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "1", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "3", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "2", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "4", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "3", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "5", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "4", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "6", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "5", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "7", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "6", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "8", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "7", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "9", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "8", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "10", "Inputs", "Input"] -> NeuralNetworks`NetPath["Nodes", "9", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "11", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "10", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "12", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "11", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "13", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "12", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "14", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "13", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "15", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "14", "Outputs", "Output"], NeuralNetworks`NetPath["Nodes", "16", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "15", "Outputs", "Output"], NeuralNetworks`NetPath["Outputs", "Output"] -> NeuralNetworks`NetPath[ "Nodes", "16", "Outputs", "Output"]}, "Inputs" -> Association[ "Input" -> NeuralNetworks`TensorT[{512, 28, 28}, NeuralNetworks`RealT]], "Outputs" -> Association[ "Output" -> NeuralNetworks`TensorT[{2, 224, 224}, NeuralNetworks`RealT]]]], Association[]], GridBox[{{ ItemBox[ StyleBox["Inputs", Bold], Frame -> {{False, False}, {False, True}}, FrameStyle -> GrayLevel[0.85]], ItemBox[ StyleBox[ GraphicsBox[{}, ImageSize -> {1, 11}, BaselinePosition -> (Scaled[0.] -> Baseline)], "CacheGraphics" -> False], Frame -> {{False, False}, {False, True}}, FrameStyle -> GrayLevel[0.85]], ItemBox["", Frame -> {{False, False}, {False, GrayLevel[0.85]}}], ItemBox["", Frame -> {{False, False}, {False, GrayLevel[0.85]}}], ItemBox[ StyleBox["Outputs", Bold], Frame -> {{False, False}, {False, True}}, FrameStyle -> GrayLevel[0.85]], ItemBox[ StyleBox[ GraphicsBox[{}, ImageSize -> {1, 11}, BaselinePosition -> (Scaled[0.] -> Baseline)], "CacheGraphics" -> False], Frame -> {{False, False}, {False, True}}, FrameStyle -> GrayLevel[0.85]]}, { StyleBox[ TemplateBox[{"\"Input\"", "\":\""}, "RowDefault"], "SummaryItemAnnotation"], StyleBox["\"image\"", "SummaryItem"], "", "", StyleBox[ TemplateBox[{"\"Output\"", "\":\""}, "RowDefault"], "SummaryItemAnnotation"], StyleBox[ TemplateBox[{"\"array\"", "\" \"", StyleBox[ TemplateBox[{ "\"(\"", "\"\[VeryThinSpace]\"", "\"size\"", "\":\"", "\" \"", TemplateBox[{"\[Times]", "\"\[Times]\"", "\"2\"", "\"224\"", "\"224\""}, "RowWithSeparators"], "\"\[VeryThinSpace]\"", "\")\""}, "RowDefault"], GrayLevel[0.5], StripOnInput -> False]}, "RowDefault"], "SummaryItem"]}}, GridBoxAlignment -> {"Columns" -> {{Left}}}]], TrackedSymbols :> { NeuralNetworks`Private`NetGraph`selection}]}}, GridBoxAlignment -> {"Columns" -> {{Left}}}], Initialization :> {NetGraph}]}}, BaselinePosition -> Automatic, GridBoxAlignment -> { "Columns" -> {{Left}}, "Rows" -> {{Automatic}}}, GridBoxItemSize -> { "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}, GridBoxSpacings -> { "Columns" -> {{2}}, "Rows" -> {{Automatic}}}]}}, GridBoxAlignment -> {"Rows" -> {{Top}}}, GridBoxItemSize -> { "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}, GridFrameMargins -> {{0, 0}, {0, 0}}, BaselinePosition -> {1, 1}]}, Dynamic[Typeset`open], ImageSize -> Automatic], BaselinePosition -> Baseline, BaseStyle -> { ShowStringCharacters -> False, NumberMarks -> False, PrintPrecision -> 3, ShowSyntaxStyles -> False}]], StyleBox["]", "NonInterpretableSummary"]}]}, "CopyTag", DisplayFunction->(#& ), InterpretationFunction->("NetGraph[<>]"& )], False, Editable->False, SelectWithContents->True, Selectable->False]], "Output", CellChangeTimes->{3.7149960775503073`*^9, 3.714996170739791*^9, 3.714996262718193*^9, 3.714997064647155*^9, 3.714997149612564*^9, 3.764331183078988*^9}, CellLabel->"Out[178]="] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Training", "Section", CellChangeTimes->{{3.695474798960601*^9, 3.69547479969661*^9}}], Cell["(Performed separately using Places)", "Text", CellChangeTimes->{{3.695474856418449*^9, 3.695474863168799*^9}, { 3.700390323972376*^9, 3.700390325924205*^9}, {3.7137843364331017`*^9, 3.713784360706161*^9}, {3.714996084965845*^9, 3.714996085641202*^9}}] }, Open ]] }, Open ]] }, WindowSize->Automatic, WindowMargins->{{Automatic, 99}, {Automatic, -999}}, FrontEndVersion->"12.0 for Mac OS X x86 (64-bit) (April 8, 2019)", StyleDefinitions->"Default.nb" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[580, 22, 431, 8, 70, "Title",ExpressionUUID->"1ffb7603-4a68-4b66-8e7d-a044f1dd6248"], Cell[CellGroupData[{ Cell[1036, 34, 103, 1, 70, "Subsection",ExpressionUUID->"e8e0504a-57cb-4035-a426-c680bbc85e2d"], Cell[CellGroupData[{ Cell[1164, 39, 106, 1, 70, "Subsubsection",ExpressionUUID->"1a3983aa-a5c8-42e1-b8ca-3668616dc459"], Cell[1273, 42, 529, 9, 70, "Input",ExpressionUUID->"7e16768a-3094-475f-b2f3-d1151b0283a7"] }, Open ]], Cell[CellGroupData[{ Cell[1839, 56, 106, 1, 70, "Subsubsection",ExpressionUUID->"f1514b52-2fef-4dd1-b7c8-7a005649d67b"], Cell[1948, 59, 447, 8, 70, "Input",ExpressionUUID->"1d3572a4-7214-462e-b89e-7461946a78b1"] }, Open ]], Cell[CellGroupData[{ Cell[2432, 72, 106, 1, 70, "Subsubsection",ExpressionUUID->"457c9410-6069-43d5-8a64-1bf9df15051a"], Cell[2541, 75, 385, 7, 70, "Input",ExpressionUUID->"810e1bf0-d6a6-44e4-9a75-403e747d300f"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[2975, 88, 77, 1, 70, "Section",ExpressionUUID->"6b06625f-f896-434e-83f6-dd62c491fa12"], Cell[CellGroupData[{ Cell[3077, 93, 105, 1, 70, "Subsection",ExpressionUUID->"c587acf1-6bf2-492f-9063-859a734dbc97"], Cell[3185, 96, 266, 7, 70, "Input",ExpressionUUID->"4830afb2-a036-408a-9f57-93be5438f80f"], Cell[3454, 105, 324, 8, 70, "Input",ExpressionUUID->"203b0b45-6a24-415d-a72c-9f5dfcb57a3c"], Cell[3781, 115, 2464, 61, 70, "Input",ExpressionUUID->"8f1b228a-e44b-4774-8f7e-25044550032c"], Cell[6248, 178, 3723, 92, 70, "Input",ExpressionUUID->"ff3e53ee-da4d-4dcd-8184-c5bacc9919ca"], Cell[9974, 272, 3158, 80, 70, "Input",ExpressionUUID->"57486445-c154-4a81-9a9d-81bac09496ad"] }, Closed]], Cell[CellGroupData[{ Cell[13169, 357, 97, 1, 70, "Subsection",ExpressionUUID->"3a3a0141-a7ef-4b1f-af20-a02d4ce12ddf"], Cell[CellGroupData[{ Cell[13291, 362, 1262, 28, 70, "Input",ExpressionUUID->"95d9d8fe-01be-4395-a120-759dd8bd0ade"], Cell[14556, 392, 111866, 2091, 70, "Output",ExpressionUUID->"967f7177-5af3-4913-88cd-a46b297c078a"] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[126483, 2490, 92, 1, 70, "Section",ExpressionUUID->"ba2e3038-1b06-4f50-8963-deb3ddf5ab45"], Cell[126578, 2493, 263, 3, 70, "Text",ExpressionUUID->"bd6bf8b9-e30f-433c-8cfa-1d41ec3c02ea"] }, Open ]] }, Open ]] } ] *) (* End of internal cache information *)