(* Content-type: application/vnd.wolfram.mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 11.1' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 158, 7] NotebookDataLength[ 82439, 1734] NotebookOptionsPosition[ 80215, 1684] NotebookOutlinePosition[ 80608, 1700] CellTagsIndexPosition[ 80565, 1697] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell[TextData[{ StyleBox["Construction Notebook for:", FontSize->24], "\nD2-Net Trained on MegaDepth Data" }], "Title", CellChangeTimes->{{3.700390059931024*^9, 3.700390069370269*^9}, { 3.713527335930427*^9, 3.71352733920855*^9}, {3.725196329204988*^9, 3.7251963296657867`*^9}, 3.725709769145364*^9, 3.725975379788035*^9, 3.725979717913773*^9, {3.7414487891539593`*^9, 3.741448824686091*^9}, { 3.761543486499277*^9, 3.761543487395276*^9}, {3.7622500684987946`*^9, 3.76225006873069*^9}, {3.762250223999448*^9, 3.762250227917072*^9}, { 3.762250258561981*^9, 3.762250261842757*^9}, {3.766235582149639*^9, 3.766235599045607*^9}, 3.767007119701935*^9, {3.769245203453505*^9, 3.769245216173695*^9}, {3.769247521976131*^9, 3.7692475237708273`*^9}, { 3.798357889870026*^9, 3.798357893721225*^9}, 3.840020664127513*^9},ExpressionUUID->"cf0af03b-7c0d-44fe-a36a-\ 801fb2cc9d1e"], Cell[CellGroupData[{ Cell["NetModel Access", "Subsection", CellChangeTimes->{{3.695474314080426*^9, 3.695474346087426*^9}},ExpressionUUID->"20a938bc-d1c4-4bd6-a5fd-\ 63b43d74e3fb"], Cell[CellGroupData[{ Cell["This Notebook", "Subsubsection", CellChangeTimes->{{3.6954750910664797`*^9, 3.695475092737351*^9}},ExpressionUUID->"aece8991-ede8-4c4f-b8b7-\ d3deda75843b"], Cell[BoxData[ RowBox[{"NetModel", "[", RowBox[{ "\"\\"", ",", "\"\\""}], "]"}]], "Input", CellChangeTimes->{{3.696656935596855*^9, 3.6966569364445457`*^9}, 3.696768427361453*^9, 3.696768595763381*^9, 3.700390080550715*^9, 3.713527332938039*^9, 3.7251895368569007`*^9, 3.7257097745186977`*^9, { 3.725974160027033*^9, 3.7259741712693043`*^9}, 3.7259797223664417`*^9, { 3.7414488366470466`*^9, 3.7414488401761193`*^9}, 3.761543503231561*^9, 3.762250232214696*^9, 3.762257437121704*^9, 3.766235575869665*^9, 3.767007114244733*^9, 3.7692452236216927`*^9, 3.7692475279954233`*^9, 3.798357896074704*^9, 3.840020680863634*^9},ExpressionUUID->"f9e334a7-6b84-4b97-a015-\ 364f975bd6c8"] }, Open ]], Cell[CellGroupData[{ Cell["Untrained Net", "Subsubsection", CellChangeTimes->{{3.6954750978333807`*^9, 3.695475133273511*^9}},ExpressionUUID->"278efdc3-d956-4587-8723-\ 2a3485f9bac0"], Cell[BoxData[ RowBox[{"NetModel", "[", RowBox[{ "\"\\"", ",", "\"\\""}], "]"}]], "Input", CellChangeTimes->{{3.696656940213286*^9, 3.6966569411083603`*^9}, 3.6967685960955133`*^9, 3.700390083629743*^9, {3.713527345914727*^9, 3.713527346642221*^9}, {3.7251895437188444`*^9, 3.725189544052307*^9}, { 3.7257097811399565`*^9, 3.725709791683883*^9}, 3.7259741741281953`*^9, 3.725979726480075*^9, 3.7414488429385967`*^9, 3.7615435115559664`*^9, 3.762250233443425*^9, 3.7622574401486087`*^9, 3.766235575870553*^9, 3.767007113239605*^9, 3.769245225632111*^9, 3.7692475313003817`*^9, 3.798357896942358*^9, 3.840020685213676*^9},ExpressionUUID->"4997fe3c-81ac-42f4-9497-\ 390d3d9b0fce"] }, Open ]], Cell[CellGroupData[{ Cell["Trained Net", "Subsubsection", CellChangeTimes->{{3.6954751072255173`*^9, 3.6954751086815357`*^9}},ExpressionUUID->"71c6cef7-94d1-4660-857a-\ d6696698fd69"], Cell[BoxData[ RowBox[{"NetModel", "[", "\"\\"", "]"}]], "Input", CellChangeTimes->{{3.6966569441649303`*^9, 3.696656946349728*^9}, 3.696768596439824*^9, 3.70039008606037*^9, 3.713527350999201*^9, 3.725189549129289*^9, 3.725709788369228*^9, 3.725974177559237*^9, 3.725979728776238*^9, 3.7414488460285764`*^9, 3.7615435148854666`*^9, 3.762250234778886*^9, 3.762257444218728*^9, 3.766235575871327*^9, 3.7670071132404833`*^9, 3.7692452283212633`*^9, 3.769247533245225*^9, 3.798357898066497*^9, 3.8400206910545874`*^9},ExpressionUUID->"908d5d25-3cee-40c2-a5c9-\ 2b89750c8f92"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Net Construction", "Section", CellChangeTimes->{ 3.695625386014464*^9},ExpressionUUID->"e6f0ec16-daa9-4151-8b11-\ 649c83fbd9a1"], Cell[CellGroupData[{ Cell["Internal Functions", "Subsection", CellChangeTimes->{{3.695474631518784*^9, 3.69547463389618*^9}},ExpressionUUID->"21109b99-1001-49b9-9770-\ c3096271c055"], Cell[BoxData[{ RowBox[{ RowBox[{"ClearAll", "[", "vggconvChain", "]"}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"Options", "[", "vggconvChain", "]"}], " ", "=", " ", RowBox[{"{", "\n", "\t", RowBox[{ RowBox[{"\"\\"", " ", "->", " ", RowBox[{"{", RowBox[{"3", ",", " ", "3"}], "}"}]}], ",", "\n", "\t", RowBox[{"\"\\"", " ", "->", " ", RowBox[{"{", RowBox[{"1", ",", " ", "1"}], "}"}]}], ",", "\n", "\t", RowBox[{"\"\\"", " ", "->", " ", RowBox[{"{", RowBox[{"1", ",", " ", "1"}], "}"}]}], ",", "\n", "\t", RowBox[{"\"\\"", " ", "->", " ", "Ramp"}], ",", "\n", "\t", RowBox[{"\"\\"", " ", "->", " ", "Automatic"}]}], "\n", "}"}]}], ";"}]}], "Input",ExpressionUUID->"1363231a-7bee-4f5e-9424-\ e69876b66a59"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{ RowBox[{"vggconvChain", "[", RowBox[{"index_", ",", " ", "nLayers_", ",", " ", "nChannels_", ",", RowBox[{"opts___", ":", "OptionsPattern"}]}], "]"}], ":=", "\n", RowBox[{"Module", "[", "\n", "\t", RowBox[{ RowBox[{"{", "\n", "\t\t", RowBox[{ "tags", ",", " ", "names", ",", " ", "layers", ",", " ", "poolingLayer", ",", " ", "padding", ",", " ", "dilation", ",", " ", "pooling", ",", " ", "kernel", ",", " ", "nonlinear", ",", " ", "nonlineraityName"}], "\n", "\t", "}"}], ",", "\n", "\n", "\t", RowBox[{ RowBox[{"tags", " ", "=", " ", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"ToString", "[", "index", "]"}], "<>", "\"\<_\>\"", "<>", RowBox[{"ToString", "[", "j", "]"}]}], ",", " ", RowBox[{"{", RowBox[{"j", ",", " ", "nLayers"}], "}"}]}], "]"}]}], ";", "\n", "\n", "\t", RowBox[{ RowBox[{"{", RowBox[{ "kernel", ",", " ", "padding", ",", " ", "dilation", ",", " ", "nonlinear", ",", " ", "pooling"}], "}"}], "=", " ", "\n", "\t\t", RowBox[{ RowBox[{ RowBox[{"OptionValue", "[", RowBox[{"vggconvChain", ",", " ", RowBox[{"{", "opts", "}"}], ",", " ", "#"}], "]"}], "&"}], "/@", "\n", "\t\t", RowBox[{"{", RowBox[{ "\"\\"", ",", " ", "\"\\"", ",", " ", "\"\\"", ",", " ", "\"\\"", ",", " ", "\"\\""}], "}"}]}]}], ";", "\n", "\n", "\t", RowBox[{"poolingLayer", " ", "=", " ", "\n", "\t", RowBox[{"Switch", "[", "\n", "\t\t", RowBox[{ "pooling", ",", "\n", "\t\t", "Automatic", ",", " ", "\n", "\t\t", RowBox[{"PoolingLayer", "[", RowBox[{ RowBox[{"{", RowBox[{"2", ",", " ", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"2", ",", " ", "2"}], "}"}], ",", RowBox[{"\"\\"", " ", "->", " ", "Max"}]}], "]"}], ",", "\n", "\t\t", "None", ",", "\n", "\t\t", "None", ",", "\n", "\t\t", "_", ",", "\n", "\t\t", "pooling"}], "\n", "\t", "]"}]}], ";", "\n", "\n", "\t", RowBox[{"nonlineraityName", " ", "=", " ", RowBox[{"ToLowerCase", "@", RowBox[{"ToString", "[", "nonlinear", "]"}]}]}], ";", "\n", " ", "\n", "\t", RowBox[{"names", " ", "=", " ", RowBox[{"Flatten", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"\"\\"", " ", "<>", " ", "#"}], ",", " ", RowBox[{"nonlineraityName", " ", "<>", " ", "#"}]}], "}"}], "&"}], "/@", "tags"}], "]"}]}], ";", "\n", "\t", RowBox[{"names", " ", "=", " ", RowBox[{"If", "[", RowBox[{ RowBox[{"pooling", " ", "=!=", "None"}], ",", " ", RowBox[{"Append", "[", RowBox[{"names", ",", " ", RowBox[{"\"\\"", " ", "<>", " ", RowBox[{"ToString", "[", "index", "]"}]}]}], "]"}], ",", " ", "names"}], "]"}]}], ";", "\n", "\n", "\t", RowBox[{"layers", " ", "=", " ", RowBox[{"Flatten", "@", RowBox[{"Table", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"ConvolutionLayer", "[", RowBox[{"nChannels", ",", " ", "kernel", ",", " ", RowBox[{"\"\\"", " ", "->", " ", "padding"}], ",", " ", RowBox[{"\"\\"", " ", "->", " ", "dilation"}]}], "]"}], ",", " ", "nonlinear"}], "}"}], ",", " ", RowBox[{"{", "nLayers", "}"}]}], "]"}]}]}], ";", "\n", "\n", "\t", RowBox[{"layers", " ", "=", " ", RowBox[{"If", "[", RowBox[{ RowBox[{"pooling", " ", "=!=", "None"}], ",", " ", RowBox[{"Append", "[", RowBox[{"layers", ",", " ", "poolingLayer"}], "]"}], ",", " ", "layers"}], "]"}]}], ";", "\n", "\n", "\t", RowBox[{"AssociationThread", "[", RowBox[{"names", " ", "->", " ", "layers"}], "]"}]}]}], "\n", "]"}]}], ";"}], "\n"}]], "Input", CellChangeTimes->{{3.8400713647804008`*^9, 3.8400713724051285`*^9}, { 3.84007157146684*^9, 3.8400715957596326`*^9}, {3.840072450850179*^9, 3.840072465747322*^9}, {3.8400725291746597`*^9, 3.840072533883103*^9}, 3.8400728433378415`*^9, {3.840072935740302*^9, 3.8400729388255844`*^9}, 3.8405949137674513`*^9, {3.84059495164993*^9, 3.8405949595693226`*^9}, { 3.840621485382183*^9, 3.840621523036022*^9}}, CellLabel->"In[26]:=",ExpressionUUID->"dc783de1-829d-496f-b371-ce9f988d49bc"] }, Open ]], Cell[CellGroupData[{ Cell["Final Net", "Subsection", CellChangeTimes->{{3.7449565337928762`*^9, 3.744956534945279*^9}},ExpressionUUID->"b4b988fc-c50c-4908-9341-\ f93d9871644d"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"d2net", " ", "=", " ", RowBox[{"NetTake", "[", "\n", "\t", RowBox[{ RowBox[{"NetChain", "[", "\n", "\t", RowBox[{ RowBox[{"Join", "[", "\n", "\t\t", RowBox[{ RowBox[{"vggconvChain", "[", RowBox[{"1", ",", " ", "2", ",", " ", "64"}], "]"}], ",", "\n", "\t\t", RowBox[{"vggconvChain", "[", RowBox[{"2", ",", " ", "2", ",", " ", "128"}], "]"}], ",", "\n", "\t\t", RowBox[{"vggconvChain", "[", RowBox[{"3", ",", " ", "3", ",", " ", "256", ",", " ", RowBox[{"\"\\"", " ", "->", " ", RowBox[{"PoolingLayer", "[", RowBox[{ RowBox[{"{", RowBox[{"2", ",", " ", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", " ", "1"}], "}"}], ",", " ", RowBox[{"\"\\"", " ", "->", " ", "Mean"}], ",", " ", RowBox[{"PaddingSize", " ", "->", " ", "0"}]}], "]"}]}]}], "]"}], ",", "\n", "\t\t", RowBox[{"vggconvChain", "[", RowBox[{"4", ",", " ", "4", ",", " ", "512", ",", " ", RowBox[{"\"\\"", " ", "->", " ", RowBox[{"{", RowBox[{"2", ",", " ", "2"}], "}"}]}], ",", " ", RowBox[{"\"\\"", " ", "->", " ", "2"}], ",", " ", RowBox[{"\"\\"", " ", "->", " ", "None"}]}], "]"}]}], "\n", "\t", "]"}], ",", "\n", "\t", RowBox[{"\"\\"", " ", "->", " ", RowBox[{"NetEncoder", "[", RowBox[{"{", RowBox[{"\"\\"", ",", " ", RowBox[{"{", RowBox[{"224", ",", " ", "224"}], "}"}], ",", " ", RowBox[{"Interleaving", " ", "->", " ", "False"}], ",", " ", RowBox[{"\"\\"", " ", "->", " ", RowBox[{"{", RowBox[{"0.485", ",", " ", "0.456", ",", " ", "0.406"}], "}"}]}], ",", " ", RowBox[{"\"\\"", " ", "->", " ", RowBox[{"{", RowBox[{"0.052441", ",", "0.050176", ",", "0.050625"}], "}"}]}]}], "}"}], "]"}]}]}], "\n", "\t", "]"}], ",", "\n", "\t", "\"\\""}], "\n", "]"}]}]], "Input", CellChangeTimes->{{3.8405235550015516`*^9, 3.8405235814554224`*^9}, { 3.840594962960512*^9, 3.8405949642556677`*^9}, {3.840621560141616*^9, 3.840621561715392*^9}},ExpressionUUID->"db326711-b761-4cc5-a142-\ d91a3beac733"], Cell[BoxData[ TagBox[ TemplateBox[{ RowBox[{ StyleBox[ TagBox["NetChain", "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}], StyleBox[ OverlayBox[{ GraphicsBox[{ Thickness[0.014925373134328358`], { GrayLevel[0.6], Thickness[0.018686567164179105`], Opacity[1.], JoinForm[{ Style[ "Miter", NeuralNetworks`Private`FormattingCommon`foreground], 10.}], JoinedCurveBox[{{{0, 2, 0}}}, {{{23., 91.5}, {30., 91.5}}}, CurveClosed -> {0}]}, { GrayLevel[0.6], Thickness[0.018686567164179105`], Opacity[1.], JoinForm[{ Style[ "Miter", NeuralNetworks`Private`FormattingCommon`foreground], 10.}], JoinedCurveBox[{{{0, 2, 0}}}, {{{37., 91.5}, {44., 91.5}}}, CurveClosed -> {0}]}, { FaceForm[{ RGBColor[0.84, 0.84, 0.84], 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.6], 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[{ RGBColor[0.84, 0.84, 0.84], 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.6], 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[{ RGBColor[0.84, 0.84, 0.84], 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.6], 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.}}}]}, { FaceForm[{ GrayLevel[0.6], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}}}, {{{28., 91.5}, { 25., 95.}, {25., 88.}}}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}}}, {{{42., 91.5}, { 39., 95.}, {39., 88.}}}]}}, ImageMargins -> 0, ImageSize -> {36, Automatic}, PlotRangePadding -> 0], StyleBox["uninitialized", RGBColor[0.66, 0, 0], FontSize -> 8, FontFamily -> "Roboto", Background -> GrayLevel[1, 0.65]]}, Alignment -> {Center, Scaled[0.0001]}], CacheGraphics -> False], GridBox[{{ StyleBox[ TemplateBox[{ TemplateBox[{"\[ThinSpace]", "\" \"", StyleBox["\"Input\"", GrayLevel[0], StripOnInput -> False], "\"port\""}, "RowWithSeparators"], "\":\""}, "RowDefault"], "SummaryItemAnnotation"], StyleBox["\"image\"", "SummaryItem"]}, { StyleBox[ TemplateBox[{ TemplateBox[{"\[ThinSpace]", "\" \"", StyleBox["\"Output\"", GrayLevel[0], StripOnInput -> False], "\"port\""}, "RowWithSeparators"], "\":\""}, "RowDefault"], "SummaryItemAnnotation"], StyleBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 512\[Times]55\[Times]55\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], "SummaryItem"]}}, 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, 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}], StyleBox[ OverlayBox[{ GraphicsBox[{ Thickness[0.014925373134328358`], { GrayLevel[0.6], Thickness[0.018686567164179105`], Opacity[1.], JoinForm[{ Style[ "Miter", NeuralNetworks`Private`FormattingCommon`foreground], 10.}], JoinedCurveBox[{{{0, 2, 0}}}, {{{23., 91.5}, {30., 91.5}}}, CurveClosed -> {0}]}, { GrayLevel[0.6], Thickness[0.018686567164179105`], Opacity[1.], JoinForm[{ Style[ "Miter", NeuralNetworks`Private`FormattingCommon`foreground], 10.}], JoinedCurveBox[{{{0, 2, 0}}}, {{{37., 91.5}, {44., 91.5}}}, CurveClosed -> {0}]}, { FaceForm[{ RGBColor[0.84, 0.84, 0.84], 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.6], 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[{ RGBColor[0.84, 0.84, 0.84], 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.6], 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[{ RGBColor[0.84, 0.84, 0.84], 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.6], 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.}}}]}, { FaceForm[{ GrayLevel[0.6], Opacity[1.]}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}}}, {{{28., 91.5}, { 25., 95.}, {25., 88.}}}], FilledCurveBox[{{{0, 2, 0}, {0, 1, 0}}}, {{{42., 91.5}, { 39., 95.}, {39., 88.}}}]}}, ImageMargins -> 0, ImageSize -> {36, Automatic}, PlotRangePadding -> 0], StyleBox["uninitialized", RGBColor[0.66, 0, 0], FontSize -> 8, FontFamily -> "Roboto", Background -> GrayLevel[1, 0.65]]}, Alignment -> {Center, Scaled[0.0001]}], CacheGraphics -> False], GridBox[{{ DynamicModuleBox[{ NeuralNetworks`Private`NetChain`assoc3 = <| "Type" -> "Chain", "Nodes" -> <| "conv1_1" -> <| "Type" -> "Convolution", "Arrays" -> <| "Weights" -> NeuralNetworks`TensorT[{64, 3, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{64}, NeuralNetworks`RealT]]|>, "Parameters" -> <| "OutputChannels" -> 64, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 3, "$InputSize" -> {224, 224}, "$OutputSize" -> {224, 224}, "$WeightsInputChannels" -> 3|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{3, 224, 224}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{64, 224, 224}, NeuralNetworks`RealT]|>|>, "ramp1_1" -> <| "Type" -> "Elementwise", "Arrays" -> <||>, "Parameters" -> <| "Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {64, 224, 224}|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{64, 224, 224}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{64, 224, 224}, NeuralNetworks`RealT]|>|>, "conv1_2" -> <| "Type" -> "Convolution", "Arrays" -> <| "Weights" -> NeuralNetworks`TensorT[{64, 64, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{64}, NeuralNetworks`RealT]]|>, "Parameters" -> <| "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" -> {224, 224}, "$OutputSize" -> {224, 224}, "$WeightsInputChannels" -> 64|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{64, 224, 224}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{64, 224, 224}, NeuralNetworks`RealT]|>|>, "ramp1_2" -> <| "Type" -> "Elementwise", "Arrays" -> <||>, "Parameters" -> <| "Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {64, 224, 224}|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{64, 224, 224}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{64, 224, 224}, NeuralNetworks`RealT]|>|>, "pool1" -> <| "Type" -> "Pooling", "Arrays" -> <||>, "Parameters" -> <| "KernelSize" -> {2, 2}, "Stride" -> {2, 2}, "PaddingSize" -> {{0, 0}, {0, 0}}, "Function" -> Max, "Dimensionality" -> 2, "Interleaving" -> False, "$Channels" -> 64, "$InputSize" -> {224, 224}, "$OutputSize" -> {112, 112}, "$MXPoolingConvention" -> "valid", "$MXGlobalPool" -> False, "$IgnorePadding" -> False, "$InputType" -> NeuralNetworks`TensorT[{}, NeuralNetworks`RealT], "$OutputType" -> NeuralNetworks`TensorT[{}, NeuralNetworks`RealT]|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{64, 224, 224}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{64, 112, 112}, NeuralNetworks`RealT]|>|>, "conv2_1" -> <| "Type" -> "Convolution", "Arrays" -> <| "Weights" -> NeuralNetworks`TensorT[{128, 64, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{128}, NeuralNetworks`RealT]]|>, "Parameters" -> <| "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" -> <| "Input" -> NeuralNetworks`TensorT[{64, 112, 112}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]|>|>, "ramp2_1" -> <| "Type" -> "Elementwise", "Arrays" -> <||>, "Parameters" -> <| "Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {128, 112, 112}|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]|>|>, "conv2_2" -> <| "Type" -> "Convolution", "Arrays" -> <| "Weights" -> NeuralNetworks`TensorT[{128, 128, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{128}, NeuralNetworks`RealT]]|>, "Parameters" -> <| "OutputChannels" -> 128, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 128, "$InputSize" -> {112, 112}, "$OutputSize" -> {112, 112}, "$WeightsInputChannels" -> 128|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]|>|>, "ramp2_2" -> <| "Type" -> "Elementwise", "Arrays" -> <||>, "Parameters" -> <| "Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {128, 112, 112}|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]|>|>, "pool2" -> <| "Type" -> "Pooling", "Arrays" -> <||>, "Parameters" -> <| "KernelSize" -> {2, 2}, "Stride" -> {2, 2}, "PaddingSize" -> {{0, 0}, {0, 0}}, "Function" -> Max, "Dimensionality" -> 2, "Interleaving" -> False, "$Channels" -> 128, "$InputSize" -> {112, 112}, "$OutputSize" -> {56, 56}, "$MXPoolingConvention" -> "valid", "$MXGlobalPool" -> False, "$IgnorePadding" -> False, "$InputType" -> NeuralNetworks`TensorT[{}, NeuralNetworks`RealT], "$OutputType" -> NeuralNetworks`TensorT[{}, NeuralNetworks`RealT]|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{128, 112, 112}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{128, 56, 56}, NeuralNetworks`RealT]|>|>, "conv3_1" -> <| "Type" -> "Convolution", "Arrays" -> <| "Weights" -> NeuralNetworks`TensorT[{256, 128, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{256}, NeuralNetworks`RealT]]|>, "Parameters" -> <| "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" -> <| "Input" -> NeuralNetworks`TensorT[{128, 56, 56}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]|>|>, "ramp3_1" -> <| "Type" -> "Elementwise", "Arrays" -> <||>, "Parameters" -> <| "Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {256, 56, 56}|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]|>|>, "conv3_2" -> <| "Type" -> "Convolution", "Arrays" -> <| "Weights" -> NeuralNetworks`TensorT[{256, 256, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{256}, NeuralNetworks`RealT]]|>, "Parameters" -> <| "OutputChannels" -> 256, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 256, "$InputSize" -> {56, 56}, "$OutputSize" -> {56, 56}, "$WeightsInputChannels" -> 256|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]|>|>, "ramp3_2" -> <| "Type" -> "Elementwise", "Arrays" -> <||>, "Parameters" -> <| "Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {256, 56, 56}|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]|>|>, "conv3_3" -> <| "Type" -> "Convolution", "Arrays" -> <| "Weights" -> NeuralNetworks`TensorT[{256, 256, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{256}, NeuralNetworks`RealT]]|>, "Parameters" -> <| "OutputChannels" -> 256, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{1, 1}, {1, 1}}, "Dilation" -> {1, 1}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 256, "$InputSize" -> {56, 56}, "$OutputSize" -> {56, 56}, "$WeightsInputChannels" -> 256|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]|>|>, "ramp3_3" -> <| "Type" -> "Elementwise", "Arrays" -> <||>, "Parameters" -> <| "Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {256, 56, 56}|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]|>|>, "pool3" -> <| "Type" -> "Pooling", "Arrays" -> <||>, "Parameters" -> <| "KernelSize" -> {2, 2}, "Stride" -> {1, 1}, "PaddingSize" -> {{0, 0}, {0, 0}}, "Function" -> Mean, "Dimensionality" -> 2, "Interleaving" -> False, "$Channels" -> 256, "$InputSize" -> {56, 56}, "$OutputSize" -> {55, 55}, "$MXPoolingConvention" -> "valid", "$MXGlobalPool" -> False, "$IgnorePadding" -> False, "$InputType" -> NeuralNetworks`TensorT[{}, NeuralNetworks`RealT], "$OutputType" -> NeuralNetworks`TensorT[{}, NeuralNetworks`RealT]|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{256, 56, 56}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{256, 55, 55}, NeuralNetworks`RealT]|>|>, "conv4_1" -> <| "Type" -> "Convolution", "Arrays" -> <| "Weights" -> NeuralNetworks`TensorT[{512, 256, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{512}, NeuralNetworks`RealT]]|>, "Parameters" -> <| "OutputChannels" -> 512, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{2, 2}, {2, 2}}, "Dilation" -> {2, 2}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 256, "$InputSize" -> {55, 55}, "$OutputSize" -> {55, 55}, "$WeightsInputChannels" -> 256|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{256, 55, 55}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{512, 55, 55}, NeuralNetworks`RealT]|>|>, "ramp4_1" -> <| "Type" -> "Elementwise", "Arrays" -> <||>, "Parameters" -> <| "Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {512, 55, 55}|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{512, 55, 55}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{512, 55, 55}, NeuralNetworks`RealT]|>|>, "conv4_2" -> <| "Type" -> "Convolution", "Arrays" -> <| "Weights" -> NeuralNetworks`TensorT[{512, 512, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{512}, NeuralNetworks`RealT]]|>, "Parameters" -> <| "OutputChannels" -> 512, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{2, 2}, {2, 2}}, "Dilation" -> {2, 2}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 512, "$InputSize" -> {55, 55}, "$OutputSize" -> {55, 55}, "$WeightsInputChannels" -> 512|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{512, 55, 55}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{512, 55, 55}, NeuralNetworks`RealT]|>|>, "ramp4_2" -> <| "Type" -> "Elementwise", "Arrays" -> <||>, "Parameters" -> <| "Function" -> NeuralNetworks`ValidatedParameter[Ramp], "$Dimensions" -> {512, 55, 55}|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{512, 55, 55}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{512, 55, 55}, NeuralNetworks`RealT]|>|>, "conv4_3" -> <| "Type" -> "Convolution", "Arrays" -> <| "Weights" -> NeuralNetworks`TensorT[{512, 512, 3, 3}, NeuralNetworks`RealT], "Biases" -> NeuralNetworks`Nullable[ NeuralNetworks`TensorT[{512}, NeuralNetworks`RealT]]|>, "Parameters" -> <| "OutputChannels" -> 512, "KernelSize" -> {3, 3}, "Stride" -> {1, 1}, "PaddingSize" -> {{2, 2}, {2, 2}}, "Dilation" -> {2, 2}, "ChannelGroups" -> 1, "Dimensionality" -> 2, "Interleaving" -> False, "$InputChannels" -> 512, "$InputSize" -> {55, 55}, "$OutputSize" -> {55, 55}, "$WeightsInputChannels" -> 512|>, "Inputs" -> <| "Input" -> NeuralNetworks`TensorT[{512, 55, 55}, NeuralNetworks`RealT]|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{512, 55, 55}, NeuralNetworks`RealT]|>|>|>, "Edges" -> { NeuralNetworks`NetPath[ "Nodes", "conv1_1", "Inputs", "Input"] -> NeuralNetworks`NetPath["Inputs", "Input"], NeuralNetworks`NetPath[ "Nodes", "ramp1_1", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "conv1_1", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "conv1_2", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "ramp1_1", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "ramp1_2", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "conv1_2", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "pool1", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "ramp1_2", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "conv2_1", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "pool1", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "ramp2_1", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "conv2_1", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "conv2_2", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "ramp2_1", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "ramp2_2", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "conv2_2", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "pool2", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "ramp2_2", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "conv3_1", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "pool2", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "ramp3_1", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "conv3_1", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "conv3_2", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "ramp3_1", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "ramp3_2", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "conv3_2", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "conv3_3", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "ramp3_2", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "ramp3_3", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "conv3_3", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "pool3", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "ramp3_3", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "conv4_1", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "pool3", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "ramp4_1", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "conv4_1", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "conv4_2", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "ramp4_1", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "ramp4_2", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "conv4_2", "Outputs", "Output"], NeuralNetworks`NetPath[ "Nodes", "conv4_3", "Inputs", "Input"] -> NeuralNetworks`NetPath[ "Nodes", "ramp4_2", "Outputs", "Output"], NeuralNetworks`NetPath["Outputs", "Output"] -> NeuralNetworks`NetPath[ "Nodes", "conv4_3", "Outputs", "Output"]}, "Inputs" -> <| "Input" -> <| "Form" -> NeuralNetworks`TensorT[{3, 224, 224}, NeuralNetworks`RealT], "Type" -> "Image", "ImageSize" -> NeuralNetworks`ValidatedParameter[{224, 224}], "ColorSpace" -> "RGB", "ColorChannels" -> 3, "Interleaving" -> False, "MeanImage" -> {0.485, 0.456, 0.406}, "VarianceImage" -> {0.052441, 0.050176, 0.050625}, "DataTransposed" -> False, "$Version" -> "13.0.0"|>|>, "Outputs" -> <| "Output" -> NeuralNetworks`TensorT[{512, 55, 55}, NeuralNetworks`RealT]|>|>, NeuralNetworks`Private`NetChain`opart, NeuralNetworks`Private`NetChain`part, NeuralNetworks`Private`NetChain`selected = Null}, DynamicBox[ GridBox[{{ TagBox[ TagBox[ GridBox[{{ TagBox[ TagBox[ "\"\"", Annotation[#, {"Inputs", "Input"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ "\"Input\"", Annotation[#, {"Inputs", "Input"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TagBox[ GridBox[{{"\"image\""}, { TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 3\[Times]224\[Times]224\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"]}}, GridBoxAlignment -> {"Columns" -> {{Left}}}, BaselinePosition -> 2, DefaultBaseStyle -> "Column", GridBoxItemSize -> { "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Column"], Annotation[#, {"Inputs", "Input"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"conv1_1\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "conv1_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["ConvolutionLayer", RGBColor[0.66, 0, 0], StripOnInput -> False], Annotation[#, {"Nodes", "conv1_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 64\[Times]224\[Times]224\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "conv1_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"ramp1_1\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "ramp1_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["Ramp", GrayLevel[0], StripOnInput -> False], Annotation[#, {"Nodes", "ramp1_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 64\[Times]224\[Times]224\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "ramp1_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"conv1_2\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "conv1_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["ConvolutionLayer", RGBColor[0.66, 0, 0], StripOnInput -> False], Annotation[#, {"Nodes", "conv1_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 64\[Times]224\[Times]224\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "conv1_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"ramp1_2\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "ramp1_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["Ramp", GrayLevel[0], StripOnInput -> False], Annotation[#, {"Nodes", "ramp1_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 64\[Times]224\[Times]224\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "ramp1_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"pool1\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "pool1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["PoolingLayer", GrayLevel[0], StripOnInput -> False], Annotation[#, {"Nodes", "pool1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 64\[Times]112\[Times]112\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "pool1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"conv2_1\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "conv2_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["ConvolutionLayer", RGBColor[0.66, 0, 0], StripOnInput -> False], Annotation[#, {"Nodes", "conv2_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 128\[Times]112\[Times]112\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "conv2_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"ramp2_1\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "ramp2_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["Ramp", GrayLevel[0], StripOnInput -> False], Annotation[#, {"Nodes", "ramp2_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 128\[Times]112\[Times]112\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "ramp2_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"conv2_2\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "conv2_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["ConvolutionLayer", RGBColor[0.66, 0, 0], StripOnInput -> False], Annotation[#, {"Nodes", "conv2_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 128\[Times]112\[Times]112\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "conv2_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"ramp2_2\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "ramp2_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["Ramp", GrayLevel[0], StripOnInput -> False], Annotation[#, {"Nodes", "ramp2_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 128\[Times]112\[Times]112\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "ramp2_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"pool2\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "pool2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["PoolingLayer", GrayLevel[0], StripOnInput -> False], Annotation[#, {"Nodes", "pool2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 128\[Times]56\[Times]56\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "pool2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"conv3_1\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "conv3_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["ConvolutionLayer", RGBColor[0.66, 0, 0], StripOnInput -> False], Annotation[#, {"Nodes", "conv3_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 256\[Times]56\[Times]56\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "conv3_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"ramp3_1\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "ramp3_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["Ramp", GrayLevel[0], StripOnInput -> False], Annotation[#, {"Nodes", "ramp3_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 256\[Times]56\[Times]56\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "ramp3_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"conv3_2\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "conv3_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["ConvolutionLayer", RGBColor[0.66, 0, 0], StripOnInput -> False], Annotation[#, {"Nodes", "conv3_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 256\[Times]56\[Times]56\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "conv3_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"ramp3_2\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "ramp3_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["Ramp", GrayLevel[0], StripOnInput -> False], Annotation[#, {"Nodes", "ramp3_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 256\[Times]56\[Times]56\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "ramp3_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"conv3_3\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "conv3_3"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["ConvolutionLayer", RGBColor[0.66, 0, 0], StripOnInput -> False], Annotation[#, {"Nodes", "conv3_3"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 256\[Times]56\[Times]56\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "conv3_3"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"ramp3_3\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "ramp3_3"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["Ramp", GrayLevel[0], StripOnInput -> False], Annotation[#, {"Nodes", "ramp3_3"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 256\[Times]56\[Times]56\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "ramp3_3"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"pool3\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "pool3"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["PoolingLayer", GrayLevel[0], StripOnInput -> False], Annotation[#, {"Nodes", "pool3"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 256\[Times]55\[Times]55\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "pool3"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"conv4_1\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "conv4_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["ConvolutionLayer", RGBColor[0.66, 0, 0], StripOnInput -> False], Annotation[#, {"Nodes", "conv4_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 512\[Times]55\[Times]55\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "conv4_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"ramp4_1\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "ramp4_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["Ramp", GrayLevel[0], StripOnInput -> False], Annotation[#, {"Nodes", "ramp4_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 512\[Times]55\[Times]55\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "ramp4_1"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"conv4_2\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "conv4_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["ConvolutionLayer", RGBColor[0.66, 0, 0], StripOnInput -> False], Annotation[#, {"Nodes", "conv4_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 512\[Times]55\[Times]55\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "conv4_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"ramp4_2\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "ramp4_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["Ramp", GrayLevel[0], StripOnInput -> False], Annotation[#, {"Nodes", "ramp4_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 512\[Times]55\[Times]55\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "ramp4_2"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ StyleBox["\"conv4_3\"", GrayLevel[0.5], StripOnInput -> False], Annotation[#, {"Nodes", "conv4_3"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ StyleBox["ConvolutionLayer", RGBColor[0.66, 0, 0], StripOnInput -> False], Annotation[#, {"Nodes", "conv4_3"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 512\[Times]55\[Times]55\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Nodes", "conv4_3"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}, { TagBox[ TagBox[ "\"\"", Annotation[#, {"Outputs", "Output"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ "\"Output\"", Annotation[#, {"Outputs", "Output"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]], TagBox[ TagBox[ TemplateBox[{"\[ThinSpace]", "\" \"", "\"array\"", StyleBox[ "\"(\[VeryThinSpace]size: 512\[Times]55\[Times]55\ \[VeryThinSpace])\"", GrayLevel[0.5], StripOnInput -> False]}, "RowWithSeparators"], Annotation[#, {"Outputs", "Output"}, "Mouse"]& ], MouseAppearanceTag["LinkHand"]]}}, GridBoxAlignment -> {"Columns" -> {{Left}}}, AutoDelete -> False, GridBoxItemSize -> { "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}, GridBoxSpacings -> {"Columns" -> {{1.1}}}], "Grid"], EventHandlerTag[{"MouseClicked" :> If[ ListQ[ NeuralNetworks`Private`NetChain`part = MouseAnnotation[]], If[NeuralNetworks`Private`NetChain`opart === NeuralNetworks`Private`NetChain`part, NeuralNetworks`Private`NetChain`selected = Null; NeuralNetworks`Private`NetChain`opart = Null, NeuralNetworks`Private`NetChain`selected = Part[NeuralNetworks`Private`NetChain`assoc3, Apply[Sequence, NeuralNetworks`Private`NetChain`part]]; NeuralNetworks`Private`NetChain`opart = NeuralNetworks`Private`NetChain`part; Null]; Null], Method -> "Preemptive", PassEventsDown -> Automatic, PassEventsUp -> True}]]}, NeuralNetworks`FormatSelectedParameterChain[ NeuralNetworks`Private`NetChain`selected, NeuralNetworks`Private`NetChain`part, <||>, {}]}, GridBoxSpacings -> {"Columns" -> {{1}}}, GridBoxAlignment -> {"Columns" -> {{Left}}}, GridFrameMargins -> {{0, 0}, {0, 0}}], TrackedSymbols :> { NeuralNetworks`Private`NetChain`selected}], Initialization :> {NetChain}]}}, 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->("NetChain[<>]"& )], False, Editable->False, SelectWithContents->True, Selectable->False]], "Output", CellChangeTimes->{3.840594971073743*^9, 3.8406214479243107`*^9, 3.8406215291165667`*^9}, CellLabel->"Out[27]=",ExpressionUUID->"088cb202-8ceb-4d1b-bf2c-5f1a8c95c0c5"] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Training", "Section", CellChangeTimes->{{3.695474798960601*^9, 3.69547479969661*^9}},ExpressionUUID->"5bc6142b-c2c8-49ee-aaf4-\ 033c6d7612ae"], Cell["(Performed separately)", "Text", CellChangeTimes->{{3.695474856418449*^9, 3.695474863168799*^9}, { 3.7003902300515137`*^9, 3.7003902345796556`*^9}, {3.7135276003953753`*^9, 3.713527600730994*^9}, 3.725189606493602*^9},ExpressionUUID->"da4acdae-b62b-490e-b846-\ 47ec715675fd"] }, Open ]] }, Open ]] }, WindowSize->{1386, 762}, WindowMargins->{{0, Automatic}, {0, Automatic}}, FrontEndVersion->"13.0 for Linux x86 (64-bit) (September 2, 2021)", StyleDefinitions->"Default.nb", ExpressionUUID->"ed5b6d4b-bbed-4a9a-bfff-9487ebda5106" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[580, 22, 908, 16, 133, "Title",ExpressionUUID->"cf0af03b-7c0d-44fe-a36a-801fb2cc9d1e"], Cell[CellGroupData[{ Cell[1513, 42, 163, 3, 54, "Subsection",ExpressionUUID->"20a938bc-d1c4-4bd6-a5fd-63b43d74e3fb"], Cell[CellGroupData[{ Cell[1701, 49, 166, 3, 45, "Subsubsection",ExpressionUUID->"aece8991-ede8-4c4f-b8b7-d3deda75843b"], Cell[1870, 54, 774, 14, 29, "Input",ExpressionUUID->"f9e334a7-6b84-4b97-a015-364f975bd6c8"] }, Open ]], Cell[CellGroupData[{ Cell[2681, 73, 166, 3, 45, "Subsubsection",ExpressionUUID->"278efdc3-d956-4587-8723-2a3485f9bac0"], Cell[2850, 78, 782, 14, 29, "Input",ExpressionUUID->"4997fe3c-81ac-42f4-9497-390d3d9b0fce"] }, Open ]], Cell[CellGroupData[{ Cell[3669, 97, 166, 3, 45, "Subsubsection",ExpressionUUID->"71c6cef7-94d1-4660-857a-d6696698fd69"], Cell[3838, 102, 639, 11, 29, "Input",ExpressionUUID->"908d5d25-3cee-40c2-a5c9-2b89750c8f92"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[4526, 119, 137, 3, 68, "Section",ExpressionUUID->"e6f0ec16-daa9-4151-8b11-649c83fbd9a1"], Cell[CellGroupData[{ Cell[4688, 126, 165, 3, 54, "Subsection",ExpressionUUID->"21109b99-1001-49b9-9770-c3096271c055"], Cell[4856, 131, 904, 21, 174, "Input",ExpressionUUID->"1363231a-7bee-4f5e-9424-e69876b66a59"], Cell[5763, 154, 4945, 108, 731, "Input",ExpressionUUID->"dc783de1-829d-496f-b371-ce9f988d49bc"] }, Open ]], Cell[CellGroupData[{ Cell[10745, 267, 159, 3, 54, "Subsection",ExpressionUUID->"b4b988fc-c50c-4908-9341-f93d9871644d"], Cell[CellGroupData[{ Cell[10929, 274, 2517, 54, 257, "Input",ExpressionUUID->"db326711-b761-4cc5-a142-d91a3beac733"], Cell[13449, 330, 66229, 1333, 65, "Output",ExpressionUUID->"088cb202-8ceb-4d1b-bf2c-5f1a8c95c0c5"] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[79739, 1670, 152, 3, 68, "Section",ExpressionUUID->"5bc6142b-c2c8-49ee-aaf4-033c6d7612ae"], Cell[79894, 1675, 293, 5, 35, "Text",ExpressionUUID->"da4acdae-b62b-490e-b846-47ec715675fd"] }, Open ]] }, Open ]] } ] *)