diff --git a/Bericht/Bilder/UNet_Architecture.png b/Bericht/Bilder/UNet_Architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..bf543fec08599386ae15620c05abe7e2039b8bda Binary files /dev/null and b/Bericht/Bilder/UNet_Architecture.png differ diff --git a/Bericht/Bilder/UNet_Architecture.svg b/Bericht/Bilder/UNet_Architecture.svg index a653a322dae33799a3f8962a71d3dfaca8e8aec4..ac8b625d553089da93f7771fdac40d659b39a491 100644 --- a/Bericht/Bilder/UNet_Architecture.svg +++ b/Bericht/Bilder/UNet_Architecture.svg @@ -10,12 +10,15 @@ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="210mm" - height="297mm" - viewBox="0 0 210 297" + height="80mm" + viewBox="0 0 210 80" version="1.1" id="svg8" inkscape:version="0.92.4 (5da689c313, 2019-01-14)" - sodipodi:docname="UNet_Architecture.svg"> + sodipodi:docname="UNet_Architecture.svg" + inkscape:export-filename="E:\Data\damask3\Bericht\Bilder\UNet_Architecture.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> <defs id="defs2"> <marker @@ -36,106 +39,79 @@ <marker inkscape:stockid="TriangleOutL" orient="auto" - refY="0.0" - refX="0.0" + refY="0" + refX="0" id="marker6851" style="overflow:visible" inkscape:isstock="true"> <path id="path6849" - d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " - style="fill-rule:evenodd;stroke:#646567;stroke-width:1pt;stroke-opacity:1;fill:#646567;fill-opacity:1" - transform="scale(0.8)" /> + d="M 5.77,0 -2.88,5 V -5 Z" + style="fill:#646567;fill-opacity:1;fill-rule:evenodd;stroke:#646567;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.8)" + inkscape:connector-curvature="0" /> </marker> <marker inkscape:isstock="true" style="overflow:visible" id="marker5167" - refX="0.0" - refY="0.0" + refX="0" + refY="0" orient="auto" inkscape:stockid="TriangleOutL" inkscape:collect="always"> <path transform="scale(0.8)" - style="fill-rule:evenodd;stroke:#cc071e;stroke-width:1pt;stroke-opacity:1;fill:#cc071e;fill-opacity:1" - d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " - id="path5165" /> + style="fill:#cc071e;fill-opacity:1;fill-rule:evenodd;stroke:#cc071e;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path5165" + inkscape:connector-curvature="0" /> </marker> <marker inkscape:stockid="TriangleOutL" orient="auto" - refY="0.0" - refX="0.0" + refY="0" + refX="0" id="TriangleOutL" style="overflow:visible" inkscape:isstock="true" inkscape:collect="always"> <path id="path4668" - d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " - style="fill-rule:evenodd;stroke:#00549f;stroke-width:1pt;stroke-opacity:1;fill:#00549f;fill-opacity:1" - transform="scale(0.8)" /> + d="M 5.77,0 -2.88,5 V -5 Z" + style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.8)" + inkscape:connector-curvature="0" /> </marker> <marker inkscape:stockid="Arrow2Mend" orient="auto" - refY="0.0" - refX="0.0" + refY="0" + refX="0" id="Arrow2Mend" - style="overflow:visible;" + style="overflow:visible" inkscape:isstock="true"> <path id="path4553" - style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#00549f;stroke-opacity:1;fill:#00549f;fill-opacity:1" - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " - transform="scale(0.6) rotate(180) translate(0,0)" /> + style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6)" + inkscape:connector-curvature="0" /> </marker> <marker inkscape:stockid="Arrow2Lend" orient="auto" - refY="0.0" - refX="0.0" - id="Arrow2Lend" - style="overflow:visible;" - inkscape:isstock="true"> - <path - id="path4547" - style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#00549f;stroke-opacity:1;fill:#00549f;fill-opacity:1" - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " - transform="scale(1.1) rotate(180) translate(1,0)" /> - </marker> - <marker - inkscape:stockid="TriangleOutL" - orient="auto" - refY="0" - refX="0" - id="TriangleOutL-1" - style="overflow:visible" - inkscape:isstock="true" - inkscape:collect="always"> - <path - inkscape:connector-curvature="0" - id="path4668-4" - d="M 5.77,0 -2.88,5 V -5 Z" - style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" - transform="scale(0.8)" /> - </marker> - <marker - inkscape:stockid="TriangleOutL" - orient="auto" refY="0" refX="0" - id="TriangleOutL-1-6" + id="Arrow2Lend" style="overflow:visible" - inkscape:isstock="true" - inkscape:collect="always"> + inkscape:isstock="true"> <path - inkscape:connector-curvature="0" - id="path4668-4-8" - d="M 5.77,0 -2.88,5 V -5 Z" - style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" - transform="scale(0.8)" /> + id="path4547" + style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + inkscape:connector-curvature="0" /> </marker> <marker inkscape:isstock="true" @@ -202,15 +178,14 @@ orient="auto" refY="0" refX="0" - id="TriangleOutL-1-6-9" + id="marker6851-9" style="overflow:visible" - inkscape:isstock="true" - inkscape:collect="always"> + inkscape:isstock="true"> <path inkscape:connector-curvature="0" - id="path4668-4-8-6" + id="path6849-4" d="M 5.77,0 -2.88,5 V -5 Z" - style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" + style="fill:#646567;fill-opacity:1;fill-rule:evenodd;stroke:#646567;stroke-width:1.00000003pt;stroke-opacity:1" transform="scale(0.8)" /> </marker> <marker @@ -218,29 +193,60 @@ orient="auto" refY="0" refX="0" - id="marker6851-9" + id="marker6851-9-3" style="overflow:visible" inkscape:isstock="true"> <path inkscape:connector-curvature="0" - id="path6849-4" + id="path6849-4-6" d="M 5.77,0 -2.88,5 V -5 Z" style="fill:#646567;fill-opacity:1;fill-rule:evenodd;stroke:#646567;stroke-width:1.00000003pt;stroke-opacity:1" transform="scale(0.8)" /> </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker7973-0" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill:#ffed00;fill-opacity:1;fill-rule:evenodd;stroke:#ffed00;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path7971-6" + inkscape:connector-curvature="0" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker7973-0-2" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill:#ffed00;fill-opacity:1;fill-rule:evenodd;stroke:#ffed00;stroke-width:1.00000003pt;stroke-opacity:1" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path7971-6-5" + inkscape:connector-curvature="0" /> + </marker> <marker inkscape:stockid="TriangleOutL" orient="auto" refY="0" refX="0" - id="marker6851-9-3" + id="TriangleOutL-1-6-9-5-9" style="overflow:visible" - inkscape:isstock="true"> + inkscape:isstock="true" + inkscape:collect="always"> <path inkscape:connector-curvature="0" - id="path6849-4-6" + id="path4668-4-8-6-1-40" d="M 5.77,0 -2.88,5 V -5 Z" - style="fill:#646567;fill-opacity:1;fill-rule:evenodd;stroke:#646567;stroke-width:1.00000003pt;stroke-opacity:1" + style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" transform="scale(0.8)" /> </marker> <marker @@ -248,77 +254,159 @@ orient="auto" refY="0" refX="0" - id="TriangleOutL-1-6-9-5" + id="TriangleOutL-1-6-9-5-9-2" style="overflow:visible" inkscape:isstock="true" inkscape:collect="always"> <path inkscape:connector-curvature="0" - id="path4668-4-8-6-1" + id="path4668-4-8-6-1-40-3" d="M 5.77,0 -2.88,5 V -5 Z" - style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" + style="fill:#cc071e;fill-opacity:1;fill-rule:evenodd;stroke:#cc071e;stroke-width:1.00000003pt;stroke-opacity:1" transform="scale(0.8)" /> </marker> <marker - inkscape:isstock="true" - style="overflow:visible" - id="marker7973-0" + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0" refX="0" + id="TriangleOutL-1-6-9-5-9-9" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path4668-4-8-6-1-40-4" + d="M 5.77,0 -2.88,5 V -5 Z" + style="fill:#646567;fill-opacity:1;fill-rule:evenodd;stroke:#646567;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" refY="0" + refX="0" + id="TriangleOutL-1-6-9-5-9-96" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path4668-4-8-6-1-40-8" + d="M 5.77,0 -2.88,5 V -5 Z" + style="fill:#e30066;fill-opacity:1;fill-rule:evenodd;stroke:#e30066;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" orient="auto" - inkscape:stockid="TriangleOutL"> + refY="0" + refX="0" + id="TriangleOutL-1-6-9-5-9-4" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> <path - transform="scale(0.8)" - style="fill:#ffed00;fill-opacity:1;fill-rule:evenodd;stroke:#ffed00;stroke-width:1.00000003pt;stroke-opacity:1" + inkscape:connector-curvature="0" + id="path4668-4-8-6-1-40-1" d="M 5.77,0 -2.88,5 V -5 Z" - id="path7971-6" - inkscape:connector-curvature="0" /> + style="fill:#ffed00;fill-opacity:1;fill-rule:evenodd;stroke:#ffed00;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.8)" /> </marker> <marker inkscape:stockid="TriangleOutL" orient="auto" refY="0" refX="0" - id="TriangleOutL-1-6-9-5-2" + id="TriangleOutL-6" style="overflow:visible" inkscape:isstock="true" inkscape:collect="always"> <path inkscape:connector-curvature="0" - id="path4668-4-8-6-1-4" + id="path4668-5" d="M 5.77,0 -2.88,5 V -5 Z" style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" transform="scale(0.8)" /> </marker> <marker - inkscape:isstock="true" + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0" + refX="0" + id="TriangleOutL-6-3" style="overflow:visible" - id="marker7973-0-2" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path4668-5-7" + d="M 5.77,0 -2.88,5 V -5 Z" + style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0" refX="0" + id="TriangleOutL-1" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path4668-4" + d="M 5.77,0 -2.88,5 V -5 Z" + style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" refY="0" + refX="0" + id="TriangleOutL-6-3-9" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path4668-5-7-9" + d="M 5.77,0 -2.88,5 V -5 Z" + style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" orient="auto" - inkscape:stockid="TriangleOutL"> + refY="0" + refX="0" + id="TriangleOutL-1-8" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> <path - transform="scale(0.8)" - style="fill:#ffed00;fill-opacity:1;fill-rule:evenodd;stroke:#ffed00;stroke-width:1.00000003pt;stroke-opacity:1" + inkscape:connector-curvature="0" + id="path4668-4-3" d="M 5.77,0 -2.88,5 V -5 Z" - id="path7971-6-5" - inkscape:connector-curvature="0" /> + style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.8)" /> </marker> <marker inkscape:stockid="TriangleOutL" orient="auto" refY="0" refX="0" - id="TriangleOutL-1-6-9-5-2-5" + id="TriangleOutL-6-3-9-6" style="overflow:visible" inkscape:isstock="true" inkscape:collect="always"> <path inkscape:connector-curvature="0" - id="path4668-4-8-6-1-4-8" + id="path4668-5-7-9-9" d="M 5.77,0 -2.88,5 V -5 Z" - style="fill:#57ab27;fill-opacity:1;fill-rule:evenodd;stroke:#57ab27;stroke-width:1.00000003pt;stroke-opacity:1" + style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" transform="scale(0.8)" /> </marker> <marker @@ -326,13 +414,13 @@ orient="auto" refY="0" refX="0" - id="TriangleOutL-1-6-9-5-9" + id="TriangleOutL-6-3-9-8" style="overflow:visible" inkscape:isstock="true" inkscape:collect="always"> <path inkscape:connector-curvature="0" - id="path4668-4-8-6-1-40" + id="path4668-5-7-9-4" d="M 5.77,0 -2.88,5 V -5 Z" style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" transform="scale(0.8)" /> @@ -342,15 +430,15 @@ orient="auto" refY="0" refX="0" - id="TriangleOutL-1-6-9-5-9-2" + id="TriangleOutL-6-3-9-8-1" style="overflow:visible" inkscape:isstock="true" inkscape:collect="always"> <path inkscape:connector-curvature="0" - id="path4668-4-8-6-1-40-3" + id="path4668-5-7-9-4-2" d="M 5.77,0 -2.88,5 V -5 Z" - style="fill:#cc071e;fill-opacity:1;fill-rule:evenodd;stroke:#cc071e;stroke-width:1.00000003pt;stroke-opacity:1" + style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" transform="scale(0.8)" /> </marker> <marker @@ -358,13 +446,28 @@ orient="auto" refY="0" refX="0" - id="TriangleOutL-1-6-9-5-9-9" + id="TriangleOutL-6-3-9-6-7" style="overflow:visible" inkscape:isstock="true" inkscape:collect="always"> <path inkscape:connector-curvature="0" - id="path4668-4-8-6-1-40-4" + id="path4668-5-7-9-9-8" + d="M 5.77,0 -2.88,5 V -5 Z" + style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0" + refX="0" + id="marker6851-9-2" + style="overflow:visible" + inkscape:isstock="true"> + <path + inkscape:connector-curvature="0" + id="path6849-4-0" d="M 5.77,0 -2.88,5 V -5 Z" style="fill:#646567;fill-opacity:1;fill-rule:evenodd;stroke:#646567;stroke-width:1.00000003pt;stroke-opacity:1" transform="scale(0.8)" /> @@ -374,15 +477,15 @@ orient="auto" refY="0" refX="0" - id="TriangleOutL-1-6-9-5-9-96" + id="TriangleOutL-6-3-9-8-1-2" style="overflow:visible" inkscape:isstock="true" inkscape:collect="always"> <path inkscape:connector-curvature="0" - id="path4668-4-8-6-1-40-8" + id="path4668-5-7-9-4-2-4" d="M 5.77,0 -2.88,5 V -5 Z" - style="fill:#57ab27;fill-opacity:1;fill-rule:evenodd;stroke:#57ab27;stroke-width:1.00000003pt;stroke-opacity:1" + style="fill:#e30066;fill-opacity:1;fill-rule:evenodd;stroke:#e30066;stroke-width:1.00000003pt;stroke-opacity:1" transform="scale(0.8)" /> </marker> <marker @@ -390,39 +493,61 @@ orient="auto" refY="0" refX="0" - id="TriangleOutL-1-6-9-5-9-4" + id="TriangleOutL-6-3-9-6-7-5" style="overflow:visible" inkscape:isstock="true" inkscape:collect="always"> <path inkscape:connector-curvature="0" - id="path4668-4-8-6-1-40-1" + id="path4668-5-7-9-9-8-1" d="M 5.77,0 -2.88,5 V -5 Z" - style="fill:#ffed00;fill-opacity:1;fill-rule:evenodd;stroke:#ffed00;stroke-width:1.00000003pt;stroke-opacity:1" + style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" transform="scale(0.8)" /> </marker> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.979899" - inkscape:cx="-43.394955" - inkscape:cy="1047.9172" - inkscape:document-units="mm" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:window-width="1920" - inkscape:window-height="1017" + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0" + refX="0" + id="TriangleOutL-6-3-9-6-7-5-8" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + inkscape:connector-curvature="0" + id="path4668-5-7-9-9-8-1-3" + d="M 5.77,0 -2.88,5 V -5 Z" + style="fill:#00549f;fill-opacity:1;fill-rule:evenodd;stroke:#00549f;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.8)" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="2" + inkscape:cx="421.03562" + inkscape:cy="210.54105" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1920" + inkscape:window-height="1017" inkscape:window-x="-8" inkscape:window-y="-8" - inkscape:window-maximized="1"> + inkscape:window-maximized="1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0"> <inkscape:grid type="xygrid" - id="grid3713" /> + id="grid3713" + originx="95.249998" + originy="-216.33333" /> </sodipodi:namedview> <metadata id="metadata5"> @@ -439,189 +564,87 @@ <g inkscape:label="Ebene 1" inkscape:groupmode="layer" - id="layer1"> + id="layer1" + transform="translate(95.25,-0.66666663)"> <rect id="rect3715" width="210" height="80" x="-95.25" y="0.66666663" - style="stroke-width:1;fill:none;stroke:#000000;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> + style="fill:none;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> <rect style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect4522" width="2.6458333" height="13.229167" - x="-72.760414" + x="-80.697922" y="9.927083" /> <path - style="fill:none;stroke:#00549f;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL)" - d="m -69.85,16.541666 h 3.968749" + style="fill:none;stroke:#00549f;stroke-width:0.16437426;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL)" + d="m -77.787505,16.541666 h 2.680781" id="path4524" inkscape:connector-curvature="0" /> - <rect - style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4522-4" - width="2.6458333" - height="13.229167" - x="-64.558327" - y="9.9270782" /> <path style="fill:none;stroke:#cc071e;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5167)" - d="M -63.499999,23.15625 -63.5,36.385417 h 3.96875" + d="m -65.0875,23.685417 -10e-7,13.229167 h 3.96875" id="path5157" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc" /> - <rect - style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4522-8" - width="2.6458333" - height="13.229167" - x="-58.208332" - y="23.15625" /> - <path - style="fill:none;stroke:#00549f;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1)" - d="m -55.297916,29.770833 h 3.968749" - id="path4524-5" - inkscape:connector-curvature="0" /> - <rect - style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4522-4-8" - width="2.6458333" - height="13.229167" - x="-50.006245" - y="23.156246" /> - <rect - style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4522-8-3" - width="2.6458333" - height="13.229167" - x="-43.39167" - y="36.385422" /> - <path - style="fill:none;stroke:#00549f;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-6)" - d="M -40.481252,43.000002 -37.041667,43" - id="path4524-5-9" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <rect - style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4522-4-8-5" - width="2.6458333" - height="13.229167" - x="-35.71875" - y="36.385414" /> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-72.231247" + x="-80.168755" y="9.3979158" id="text5568"><tspan sodipodi:role="line" id="tspan5566" - x="-72.231247" + x="-80.168755" y="9.3979158" style="font-size:2.11666656px;stroke-width:0.26458332">6</tspan></text> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-64.822914" + x="-73.818756" y="9.397912" id="text5568-6"><tspan sodipodi:role="line" id="tspan5566-1" - x="-64.822914" + x="-73.818756" y="9.397912" style="font-size:2.11666656px;stroke-width:0.26458332">16</tspan></text> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-58.208328" - y="22.627079" - id="text5568-6-3"><tspan - sodipodi:role="line" - id="tspan5566-1-9" - x="-58.208328" - y="22.627079" - style="font-size:2.11666656px;stroke-width:0.26458332">16</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-50.270828" - y="22.627079" - id="text5568-6-1"><tspan - sodipodi:role="line" - id="tspan5566-1-2" - x="-50.270828" - y="22.627079" - style="font-size:2.11666656px;stroke-width:0.26458332">32</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-43.656246" - y="35.856243" + x="-45.243748" + y="36.38541" id="text5568-6-7"><tspan sodipodi:role="line" id="tspan5566-1-4" - x="-43.656246" - y="35.856243" + x="-45.243748" + y="36.38541" style="font-size:2.11666656px;stroke-width:0.26458332">32</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-35.189579" - y="35.854694" - id="text5568-6-11"><tspan - sodipodi:role="line" - id="tspan5566-1-5" - x="-35.189579" - y="35.854694" - style="font-size:2.11666656px;stroke-width:0.26458332">64</tspan></text> <rect style="fill:#cfd1d2;fill-opacity:1;stroke:#000000;stroke-width:0.112;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect4522-8-3-4" width="2.6458333" height="13.229167" - x="-29.104166" - y="49.614582" /> + x="-17.991659" + y="52.789585" /> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-29.104156" - y="49.349995" + x="-19.049982" + y="52.524998" id="text5568-6-7-7"><tspan sodipodi:role="line" id="tspan5566-1-4-9" - x="-29.104156" - y="49.349995" - style="font-size:2.11666656px;stroke-width:0.26458332">64</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-21.675907" - y="-73.163864" - id="text5568-5" - transform="rotate(-90.138025)"><tspan - sodipodi:role="line" - id="tspan5566-19" - x="-21.675907" - y="-73.163864" - style="font-size:2.11666656px;stroke-width:0.26458332">32x32x32</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-35.008892" - y="-58.643864" - id="text5568-5-9" - transform="rotate(-90.138025)"><tspan - sodipodi:role="line" - id="tspan5566-19-0" - x="-35.008892" - y="-58.643864" - style="font-size:2.11666656px;stroke-width:0.26458332">16x16x16</tspan></text> + x="-19.049982" + y="52.524998" + style="font-size:2.11666656px;stroke-width:0.26458332">128</tspan></text> <path style="fill:none;stroke:#cc071e;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5167-4)" - d="m -48.683327,36.385415 -1e-6,13.229167 h 3.96875" + d="m -43.920824,37.972916 -10e-7,13.229167 h 3.96875" id="path5157-7" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc" /> @@ -635,29 +658,31 @@ sodipodi:role="line" id="tspan5566-19-0-9" x="-46.164543" - y="-44.383221" - style="font-size:2.11666656px;stroke-width:0.26458332">8x8x8</tspan></text> + y="-42.452122" + style="font-size:2.11666656px;stroke-width:0.26458332" /></text> <path style="fill:none;stroke:#cc071e;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5167-44)" - d="M -34.395833,49.614583 V 62.84375 l 4.233335,0" + d="m -23.283327,52.789585 v 13.229167 h 4.233335" id="path5157-1" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc" /> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-59.683216" - y="-29.334469" + x="-60.237862" + y="-18.752434" id="text5568-5-9-7" transform="rotate(-90.138025)"><tspan sodipodi:role="line" id="tspan5566-19-0-3" - x="-59.683216" - y="-29.334469" - style="font-size:2.11666656px;stroke-width:0.26458332">4x4x4</tspan></text> + x="-60.237862" + y="-18.752434" + style="font-size:2.11666656px;stroke-width:0.26458332">4<tspan + style="font-size:64.99999762%;baseline-shift:super" + id="tspan4533">3</tspan></tspan></text> <path style="fill:none;stroke:#646567;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6851)" - d="M -26.458333,56.229167 H -15.875 l 0,-5.291667" + d="M -15.345827,59.404169 H -4.7624975 V 54.112502" id="path6841" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc" /> @@ -666,404 +691,649 @@ id="rect4522-8-3-4-7" width="2.6458333" height="13.229167" - x="-17.197916" - y="36.385414" /> + x="-6.0854225" + y="39.21637" /> <rect style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect4522-4-8-5-1" width="2.6458333" height="13.229167" - x="-20.372913" - y="36.385414" /> + x="-9.2604151" + y="39.21637" /> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-20.902081" - y="35.854694" + x="-10.318748" + y="38.50053" id="text5568-6-11-8"><tspan sodipodi:role="line" id="tspan5566-1-5-3" - x="-20.902081" - y="35.854694" - style="font-size:2.11666656px;stroke-width:0.26458332">64+64</tspan></text> - <path - style="fill:none;stroke:#ffed00;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker7973)" - d="m -32.808333,37.972917 h 11.1125" - id="path7963" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#00549f;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-6-9)" - d="M -14.287502,43.000002 -10.847917,43" - id="path4524-5-9-2" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> + x="-10.318748" + y="38.50053" + style="font-size:2.11666656px;stroke-width:0.26458332">128+64</tspan></text> <rect style="fill:#cfd1d2;fill-opacity:1;stroke:#000000;stroke-width:0.112;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect4522-8-3-4-7-4" width="2.6458333" height="13.229167" - x="-6.614583" - y="36.385418" /> + x="8.7312508" + y="39.21637" /> <path style="fill:none;stroke:#646567;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6851-9)" - d="M -3.4395829,43 6.6145833,43 V 37.708333" + d="m 11.377085,46.011221 h 10.054172 l -0.0775,-6.311865" id="path6841-9" inkscape:connector-curvature="0" sodipodi:nodetypes="ccc" /> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-6.6145797" - y="35.854694" - id="text5568-6-11-4"><tspan - sodipodi:role="line" - id="tspan5566-1-5-0" - x="-6.6145797" - y="35.854694" - style="font-size:2.11666656px;stroke-width:0.26458332">32</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-46.209267" - y="-21.099905" - id="text5568-5-9-7-9" - transform="rotate(-90.138025)"><tspan - sodipodi:role="line" - id="tspan5566-19-0-3-7" - x="-46.209267" - y="-21.099905" - style="font-size:2.11666656px;stroke-width:0.26458332">8x8x8</tspan></text> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-46.771572" - y="-7.3428855" - id="text5568-5-9-7-9-2" + x="-33.604271" + y="18.353489" + id="text5568-5-9-7-9-2-8" transform="rotate(-90.138025)"><tspan sodipodi:role="line" - id="tspan5566-19-0-3-7-1" - x="-46.771572" - y="-7.3428855" - style="font-size:2.11666656px;stroke-width:0.26458332">8x8x8</tspan></text> + id="tspan5566-19-0-3-7-1-9" + x="-33.604271" + y="20.284588" + style="font-size:2.11666656px;stroke-width:0.26458332" /></text> <rect style="fill:#cfd1d2;fill-opacity:1;stroke:#000000;stroke-width:0.112;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4522-8-3-4-7-8" - width="2.6458333" - height="13.229167" - x="8.4666624" - y="23.15625" /> - <rect - style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4522-4-8-5-1-0" + id="rect4522-8-3-4-7-4-5-3-4" width="2.6458333" height="13.229167" - x="5.291667" - y="23.15625" /> + x="68.262505" + y="10.138646" /> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="4.7624998" - y="22.62553" - id="text5568-6-11-8-8"><tspan + x="68.881584" + y="9.3963652" + id="text5568-6-11-4-7-4-6"><tspan sodipodi:role="line" - id="tspan5566-1-5-3-9" - x="4.7624998" - y="22.62553" - style="font-size:2.11666656px;stroke-width:0.26458332">32+32</tspan></text> + id="tspan5566-1-5-0-1-2-6" + x="68.881584" + y="9.3963652" + style="font-size:2.11666656px;stroke-width:0.26458332">1</tspan></text> <path - style="fill:none;stroke:#ffed00;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker7973-0)" - d="M -46.831253,24.214586 H 3.9687471" - id="path7963-0" + style="fill:none;stroke:#00549f;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-6-9-5-9)" + d="m 30.162508,49.614588 13.75834,-5e-6" + id="path4524-5-9-2-5-7" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#cc071e;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-6-9-5-9-2)" + d="m 30.162508,53.517193 13.758341,-5e-6" + id="path4524-5-9-2-5-7-5" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#646567;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-6-9-5-9-9)" + d="m 30.162508,57.419796 13.758341,-5e-6" + id="path4524-5-9-2-5-7-7" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> <path - style="fill:none;stroke:#00549f;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-6-9-5)" - d="m 11.377079,29.770838 3.439586,-2e-6" - id="path4524-5-9-2-5" + style="fill:none;stroke:#e30066;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-6-9-5-9-96)" + d="m 30.162508,61.322402 13.75834,-6e-6" + id="path4524-5-9-2-5-7-54" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#ffed00;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-6-9-5-9-4)" + d="m 30.162508,65.225008 13.75834,-5e-6" + id="path4524-5-9-2-5-7-9" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#00549f;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="45.772942" + y="50.406773" + id="text5568-6-11-8-8-27"><tspan + sodipodi:role="line" + id="tspan5566-1-5-3-9-5" + x="45.772942" + y="50.406773" + style="font-size:2.11666656px;fill:#00549f;fill-opacity:1;stroke-width:0.26458332">SeparableConv3D (5x5x5), ReLu</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#cc071e;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="45.704731" + y="54.253437" + id="text5568-6-11-8-8-27-3"><tspan + sodipodi:role="line" + id="tspan5566-1-5-3-9-5-5" + x="45.704731" + y="54.253437" + style="font-size:2.11666656px;fill:#cc071e;fill-opacity:1;stroke-width:0.26458332">BatchNormalization & MaxPooling3D with size = (2, 2, 2)</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#646567;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="45.727467" + y="58.105804" + id="text5568-6-11-8-8-27-8"><tspan + sodipodi:role="line" + id="tspan5566-1-5-3-9-5-1" + x="45.727467" + y="58.105804" + style="font-size:2.11666656px;fill:#646567;fill-opacity:1;stroke-width:0.26458332">UpSampling with size = (2, 2, 2) </tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e30066;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="45.772942" + y="61.958153" + id="text5568-6-11-8-8-27-1"><tspan + sodipodi:role="line" + id="tspan5566-1-5-3-9-5-4" + x="45.772942" + y="61.958153" + style="font-size:2.11666656px;fill:#e30066;fill-opacity:1;stroke-width:0.26458332">SeparableConv3D (1, 1, 1), sigmoids</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffed00;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="45.772942" + y="65.816185" + id="text5568-6-11-8-8-27-5"><tspan + sodipodi:role="line" + id="tspan5566-1-5-3-9-5-9" + x="45.772942" + y="65.816185" + style="font-size:2.11666656px;fill:#ffed00;fill-opacity:1;stroke-width:0.26458332">Skip connection</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="64.029182" + y="27.072456" + id="text11384"><tspan + sodipodi:role="line" + id="tspan11382" + x="64.029182" + y="27.072456" + style="font-size:3.52777767px;stroke-width:0.26458332">output</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="-77.258324" + y="27.124994" + id="text11384-1"><tspan + sodipodi:role="line" + id="tspan11382-4" + x="-77.258324" + y="27.124994" + style="font-size:3.52777767px;stroke-width:0.26458332">input</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="-66.93959" + y="9.6624956" + id="text5568-6-14"><tspan + sodipodi:role="line" + id="tspan5566-1-47" + x="-66.93959" + y="9.6624956" + style="font-size:2.11666656px;stroke-width:0.26458332">32</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.88055563px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="-75.40625" + y="16.541666" + id="text2450"><tspan + sodipodi:role="line" + id="tspan2448" + x="-75.40625" + y="20.082014" + style="stroke-width:0.26458332" /></text> + <path + style="fill:none;stroke:#00549f;stroke-width:0.16437426;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-6)" + d="m -70.665168,16.541666 h 2.680781" + id="path4524-1" + inkscape:connector-curvature="0" /> <rect - style="fill:#cfd1d2;fill-opacity:1;stroke:#000000;stroke-width:0.112;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4522-8-3-4-7-4-5" + style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-40" width="2.6458333" height="13.229167" - x="19.049999" - y="23.156254" /> + x="-59.37936" + y="24.639845" /> <path - style="fill:none;stroke:#646567;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6851-9-3)" - d="M 22.224999,29.770836 H 32.808332 V 24.479169" - id="path6841-9-6" - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccc" /> + style="fill:none;stroke:#00549f;stroke-width:0.16437426;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1)" + d="m -56.468943,31.25443 h 2.680781" + id="path4524-18" + inkscape:connector-curvature="0" /> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="19.050003" - y="22.62553" - id="text5568-6-11-4-7"><tspan + x="-59.37936" + y="24.110676" + id="text5568-1"><tspan sodipodi:role="line" - id="tspan5566-1-5-0-1" - x="19.050003" - y="22.62553" - style="font-size:2.11666656px;stroke-width:0.26458332">16</tspan></text> + id="tspan5566-6" + x="-59.37936" + y="24.110676" + style="font-size:2.11666656px;stroke-width:0.26458332">32</tspan></text> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-36.216946" - y="4.5888228" - id="text5568-5-9-7-9-5" - transform="rotate(-90.138025)"><tspan + x="-52.500195" + y="24.110672" + id="text5568-6-70"><tspan sodipodi:role="line" - id="tspan5566-19-0-3-7-2" - x="-36.216946" - y="4.5888228" - style="font-size:2.11666656px;stroke-width:0.26458332">16x16x16</tspan></text> + id="tspan5566-1-8" + x="-52.500195" + y="24.110672" + style="font-size:2.11666656px;stroke-width:0.26458332">32</tspan></text> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-33.604271" - y="18.353489" - id="text5568-5-9-7-9-2-8" + x="-32.716705" + y="-59.809391" + id="text5568-5-8" transform="rotate(-90.138025)"><tspan sodipodi:role="line" - id="tspan5566-19-0-3-7-1-9" - x="-33.604271" - y="20.284588" - style="font-size:2.11666656px;stroke-width:0.26458332" /></text> + id="tspan5566-19-2" + x="-32.716705" + y="-59.809391" + style="font-size:2.11666656px;stroke-width:0.26458332">16<tspan + style="font-size:64.99999762%;baseline-shift:super" + id="tspan3612">3</tspan></tspan></text> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-36.250088" - y="18.347116" - id="text5568-5-9-7-9-5-9" - transform="rotate(-90.138025)"><tspan + x="-45.621029" + y="24.375256" + id="text5568-6-14-4"><tspan sodipodi:role="line" - id="tspan5566-19-0-3-7-2-6" - x="-36.250088" - y="18.347116" - style="font-size:2.11666656px;stroke-width:0.26458332">16x16x16</tspan></text> - <rect - style="fill:#cfd1d2;fill-opacity:1;stroke:#000000;stroke-width:0.112;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4522-8-3-4-7-8-8" - width="2.6458333" - height="13.229167" - x="34.660393" - y="9.9270782" /> - <rect - style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4522-4-8-5-1-0-6" - width="2.6458333" - height="13.229167" - x="31.485397" - y="9.9270782" /> + id="tspan5566-1-47-6" + x="-45.621029" + y="24.375256" + style="font-size:2.11666656px;stroke-width:0.26458332">64</tspan></text> + <path + style="fill:none;stroke:#00549f;stroke-width:0.16437426;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-6-3)" + d="m -49.346605,31.25443 h 2.680781" + id="path4524-1-9" + inkscape:connector-curvature="0" /> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="30.95623" - y="9.3963575" - id="text5568-6-11-8-8-2"><tspan + x="-17.491825" + y="-81.53624" + id="text5568-5-8-0" + transform="rotate(-90.138025)"><tspan sodipodi:role="line" - id="tspan5566-1-5-3-9-4" - x="30.95623" - y="9.3963575" - style="font-size:2.11666656px;stroke-width:0.26458332">16+16</tspan></text> + id="tspan5566-19-2-0" + x="-17.491825" + y="-81.53624" + style="font-size:2.11666656px;stroke-width:0.26458332">32<tspan + style="font-size:64.99999762%;baseline-shift:super" + id="tspan3635">3</tspan></tspan></text> <path - style="fill:none;stroke:#ffed00;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker7973-0-2)" - d="M -61.383343,10.98541 H 30.162483" + style="fill:none;stroke:#ffed00;stroke-width:0.2276167;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker7973-0-2)" + d="M -78.052083,10.98541 H 40.521184" id="path7963-0-5" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> <path - style="fill:none;stroke:#00549f;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-6-9-5-2)" - d="m 37.570816,16.541662 3.439586,-2e-6" - id="path4524-5-9-2-5-8" + style="fill:none;stroke:#ffed00;stroke-width:0.23674184;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker7973-0)" + d="M -56.577293,25.802087 H 14.602018" + id="path7963-0" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="-24.397284" + y="50.961937" + id="text5568-6-7-9"><tspan + sodipodi:role="line" + id="tspan5566-1-4-6" + x="-24.397284" + y="50.961937" + style="font-size:2.11666656px;stroke-width:0.26458332">32</tspan></text> <rect - style="fill:#cfd1d2;fill-opacity:1;stroke:#000000;stroke-width:0.112;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4522-8-3-4-7-4-5-3" + style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-40-0" width="2.6458333" height="13.229167" - x="45.243729" - y="9.9270811" /> + x="-38.532894" + y="39.21637" /> + <path + style="fill:none;stroke:#00549f;stroke-width:0.16437426;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-8)" + d="m -35.62248,45.830958 h 2.680781" + id="path4524-18-6" + inkscape:connector-curvature="0" /> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="45.862812" - y="9.3963575" - id="text5568-6-11-4-7-4"><tspan + x="-38.532894" + y="38.687202" + id="text5568-1-3"><tspan sodipodi:role="line" - id="tspan5566-1-5-0-1-2" - x="45.862812" - y="9.3963575" - style="font-size:2.11666656px;stroke-width:0.26458332">1</tspan></text> + id="tspan5566-6-5" + x="-38.532894" + y="38.687202" + style="font-size:2.11666656px;stroke-width:0.26458332">64</tspan></text> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-23.050936" - y="30.814432" - id="text5568-5-9-7-9-5-6" - transform="rotate(-90.138025)"><tspan + x="-31.653728" + y="38.687199" + id="text5568-6-70-2"><tspan sodipodi:role="line" - id="tspan5566-19-0-3-7-2-8" - x="-23.050936" - y="30.814432" - style="font-size:2.11666656px;stroke-width:0.26458332">32x32x32</tspan></text> + id="tspan5566-1-8-5" + x="-31.653728" + y="38.687199" + style="font-size:2.11666656px;stroke-width:0.26458332">64</tspan></text> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-23.08408" - y="44.572712" - id="text5568-5-9-7-9-5-9-5" + x="-46.283829" + y="-39.524754" + id="text5568-5-8-4" transform="rotate(-90.138025)"><tspan sodipodi:role="line" - id="tspan5566-19-0-3-7-2-6-8" - x="-23.08408" - y="44.572712" - style="font-size:2.11666656px;stroke-width:0.26458332">32x32x32</tspan></text> + id="tspan5566-19-2-1" + x="-46.283829" + y="-39.524754" + style="font-size:2.11666656px;stroke-width:0.26458332">8<tspan + style="font-size:64.99999762%;baseline-shift:super" + id="tspan4507">3</tspan></tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="-25.30373" + y="38.951782" + id="text5568-6-14-4-7"><tspan + sodipodi:role="line" + id="tspan5566-1-47-6-4" + x="-25.30373" + y="38.951782" + style="font-size:2.11666656px;stroke-width:0.26458332">128</tspan></text> <path - style="fill:none;stroke:#57ab27;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-6-9-5-2-5)" - d="m 47.88958,16.541669 3.439586,-2e-6" - id="path4524-5-9-2-5-8-6" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> + style="fill:none;stroke:#00549f;stroke-width:0.16437426;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-6-3-9)" + d="m -28.500143,45.830958 h 2.680781" + id="path4524-1-9-1" + inkscape:connector-curvature="0" /> <rect style="fill:#cfd1d2;fill-opacity:1;stroke:#000000;stroke-width:0.112;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect4522-8-3-4-7-4-5-3-4" + id="rect4522-8-3-4-7-4-9" width="2.6458333" height="13.229167" - x="55.562492" - y="9.9270897" /> + x="1.2438178" + y="39.21637" /> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="56.181576" - y="9.3963652" - id="text5568-6-11-4-7-4-6"><tspan + x="0.71465498" + y="38.591217" + id="text5568-6-11-4-4"><tspan sodipodi:role="line" - id="tspan5566-1-5-0-1-2-6" - x="56.181576" - y="9.3963652" - style="font-size:2.11666656px;stroke-width:0.26458332">1</tspan></text> + id="tspan5566-1-5-0-3" + x="0.71465498" + y="38.591217" + style="font-size:2.11666656px;stroke-width:0.26458332">128</tspan></text> + <path + style="fill:none;stroke:#00549f;stroke-width:0.16437426;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-6-3-9-6)" + d="m -3.0279953,45.830958 h 2.68077939" + id="path4524-1-9-1-0" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#00549f;stroke-width:0.16437426;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-6-3-9-8)" + d="M 4.6160423,45.830958 H 7.2968218" + id="path4524-1-9-1-07" + inkscape:connector-curvature="0" /> <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-23.108946" - y="54.891449" - id="text5568-5-9-7-9-5-9-5-0" + x="-46.351925" + y="-11.264449" + id="text5568-5-8-4-4" transform="rotate(-90.138025)"><tspan sodipodi:role="line" - id="tspan5566-19-0-3-7-2-6-8-7" - x="-23.108946" - y="54.891449" - style="font-size:2.11666656px;stroke-width:0.26458332">32x32x32</tspan></text> - <path - style="fill:none;stroke:#00549f;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-6-9-5-9)" - d="m 3.1749955,49.614588 13.7583365,-5e-6" - id="path4524-5-9-2-5-7" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#cc071e;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-6-9-5-9-2)" - d="m 3.1749955,53.517193 13.7583375,-5e-6" - id="path4524-5-9-2-5-7-5" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#646567;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-6-9-5-9-9)" - d="m 3.1749955,57.419796 13.7583375,-5e-6" - id="path4524-5-9-2-5-7-7" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> + id="tspan5566-19-2-1-1" + x="-46.351925" + y="-11.264449" + style="font-size:2.11666656px;stroke-width:0.26458332">8<tspan + style="font-size:1.37583315px;baseline-shift:super;stroke-width:0.26458332" + id="tspan4507-4">3</tspan></tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="8.152051" + y="38.464565" + id="text5568-6-11-4-4-6"><tspan + sodipodi:role="line" + id="tspan5566-1-5-0-3-7" + x="8.152051" + y="38.464565" + style="font-size:2.11666656px;stroke-width:0.26458332">128</tspan></text> <path - style="fill:none;stroke:#57ab27;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-6-9-5-9-96)" - d="m 3.1749955,61.322402 13.7583365,-6e-6" - id="path4524-5-9-2-5-7-54" + style="fill:none;stroke:#ffed00;stroke-width:0.29850301;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker7973)" + d="m -35.866709,40.089585 h 24.754215" + id="path7963" inkscape:connector-curvature="0" sodipodi:nodetypes="cc" /> + <rect + style="fill:#cfd1d2;fill-opacity:1;stroke:#000000;stroke-width:0.112;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-8-3-4-7-7" + width="2.6458333" + height="13.229167" + x="19.770737" + y="24.673214" /> + <rect + style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-4-8-5-1-7" + width="2.6458333" + height="13.229167" + x="16.595737" + y="24.673214" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="15.537404" + y="23.957376" + id="text5568-6-11-8-2"><tspan + sodipodi:role="line" + id="tspan5566-1-5-3-0" + x="15.537404" + y="23.957376" + style="font-size:2.11666656px;stroke-width:0.26458332">32+128</tspan></text> + <rect + style="fill:#cfd1d2;fill-opacity:1;stroke:#000000;stroke-width:0.112;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-8-3-4-7-4-2" + width="2.6458333" + height="13.229167" + x="34.58741" + y="24.673214" /> <path - style="fill:none;stroke:#ffed00;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1-6-9-5-9-4)" - d="m 3.1749955,65.225008 13.7583365,-5e-6" - id="path4524-5-9-2-5-7-9" + style="fill:none;stroke:#646567;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6851-9-2)" + d="m 37.233242,30.649554 h 10.054172 l 0.073,-5.665984" + id="path6841-9-5" inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> + sodipodi:nodetypes="ccc" /> + <rect + style="fill:#cfd1d2;fill-opacity:1;stroke:#000000;stroke-width:0.112;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-8-3-4-7-4-9-9" + width="2.6458333" + height="13.229167" + x="27.099976" + y="24.673214" /> <text xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#00549f;fill-opacity:1;stroke:none;stroke-width:0.26458332;" - x="18.785419" - y="50.406773" - id="text5568-6-11-8-8-27"><tspan + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="27.099981" + y="24.048061" + id="text5568-6-11-4-4-3"><tspan sodipodi:role="line" - id="tspan5566-1-5-3-9-5" - x="18.785419" - y="50.406773" - style="font-size:2.11666656px;stroke-width:0.26458332;fill:#00549f;fill-opacity:1;">SeparableConv3D (5x5x5), ReLu</tspan></text> + id="tspan5566-1-5-0-3-9" + x="27.099981" + y="24.048061" + style="font-size:2.11666656px;stroke-width:0.26458332">64</tspan></text> + <path + style="fill:none;stroke:#00549f;stroke-width:0.16437426;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-6-3-9-6-7)" + d="m 22.828162,31.287804 h 2.680779" + id="path4524-1-9-1-0-1" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#00549f;stroke-width:0.16437426;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-6-3-9-8-1)" + d="m 30.472199,31.287804 h 2.68078" + id="path4524-1-9-1-07-7" + inkscape:connector-curvature="0" /> <text xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#cc071e;fill-opacity:1;stroke:none;stroke-width:0.26458332;" - x="18.717207" - y="54.253437" - id="text5568-6-11-8-8-27-3"><tspan + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="34.537376" + y="23.92141" + id="text5568-6-11-4-4-6-0"><tspan sodipodi:role="line" - id="tspan5566-1-5-3-9-5-5" - x="18.717207" - y="54.253437" - style="font-size:2.11666656px;stroke-width:0.26458332;fill:#cc071e;fill-opacity:1;">BatchNormalization & MaxPooling3D with size = (2, 2, 2)</tspan></text> + id="tspan5566-1-5-0-3-7-0" + x="34.537376" + y="23.92141" + style="font-size:2.11666656px;stroke-width:0.26458332">64</tspan></text> <text xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#646567;fill-opacity:1;stroke:none;stroke-width:0.26458332;" - x="18.739944" - y="58.105804" - id="text5568-6-11-8-8-27-8"><tspan + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="-32.843025" + y="15.870556" + id="text5568-5-8-2" + transform="rotate(-90.138025)"><tspan sodipodi:role="line" - id="tspan5566-1-5-3-9-5-1" - x="18.739944" - y="58.105804" - style="font-size:2.11666656px;stroke-width:0.26458332;fill:#646567;fill-opacity:1;">UpSampling with size = (2, 2, 2) </tspan></text> + id="tspan5566-19-2-5" + x="-32.843025" + y="15.870556" + style="font-size:2.11666656px;stroke-width:0.26458332">16<tspan + style="font-size:1.37583315px;baseline-shift:super;stroke-width:0.26458332" + id="tspan3612-4">3</tspan></tspan></text> + <rect + style="fill:#cfd1d2;fill-opacity:1;stroke:#000000;stroke-width:0.112;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-8-3-4-7-7-6" + width="2.6458333" + height="13.229167" + x="45.968872" + y="10.138646" /> + <rect + style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-4-8-5-1-7-4" + width="2.6458333" + height="13.229167" + x="42.793873" + y="10.191662" /> <text xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#57ab27;fill-opacity:1;stroke:none;stroke-width:0.26458332;" - x="18.785419" - y="61.958153" - id="text5568-6-11-8-8-27-1"><tspan + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="42.793877" + y="9.4228086" + id="text5568-6-11-8-2-4"><tspan sodipodi:role="line" - id="tspan5566-1-5-3-9-5-4" - x="18.785419" - y="61.958153" - style="font-size:2.11666656px;stroke-width:0.26458332;fill:#57ab27;fill-opacity:1;">SeparableConv3D (1, 1, 1), sigmoids</tspan></text> + id="tspan5566-1-5-3-0-2" + x="42.793877" + y="9.4228086" + style="font-size:2.11666656px;stroke-width:0.26458332">6+64</tspan></text> + <rect + style="fill:#cfd1d2;fill-opacity:1;stroke:#000000;stroke-width:0.112;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-8-3-4-7-4-2-1" + width="2.6458333" + height="13.229167" + x="60.785545" + y="10.138646" /> + <rect + style="fill:#cfd1d2;fill-opacity:1;stroke:#000000;stroke-width:0.112;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-8-3-4-7-4-9-9-2" + width="2.6458333" + height="13.229167" + x="53.298111" + y="10.138646" /> <text xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffed00;fill-opacity:1;stroke:none;stroke-width:0.26458332;" - x="18.785419" - y="65.816185" - id="text5568-6-11-8-8-27-5"><tspan + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="53.298119" + y="9.5134935" + id="text5568-6-11-4-4-3-5"><tspan sodipodi:role="line" - id="tspan5566-1-5-3-9-5-9" - x="18.785419" - y="65.816185" - style="font-size:2.11666656px;stroke-width:0.26458332;fill:#ffed00;fill-opacity:1;">Skip connection</tspan></text> + id="tspan5566-1-5-0-3-9-8" + x="53.298119" + y="9.5134935" + style="font-size:2.11666656px;stroke-width:0.26458332">32</tspan></text> + <path + style="fill:none;stroke:#00549f;stroke-width:0.16437426;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-6-3-9-6-7-5)" + d="m 49.026297,16.753234 h 2.680779" + id="path4524-1-9-1-0-1-6" + inkscape:connector-curvature="0" /> + <path + style="fill:none;stroke:#e30066;stroke-width:0.16437426;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-6-3-9-8-1-2)" + d="m 64.078673,16.753234 h 2.68078" + id="path4524-1-9-1-07-7-7" + inkscape:connector-curvature="0" /> <text xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="51.858341" - y="27.072456" - id="text11384"><tspan + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="60.735516" + y="9.3868418" + id="text5568-6-11-4-4-6-0-7"><tspan sodipodi:role="line" - id="tspan11382" - x="51.858341" - y="27.072456" - style="font-size:3.52777767px;stroke-width:0.26458332">output</tspan></text> + id="tspan5566-1-5-0-3-7-0-0" + x="60.735516" + y="9.3868418" + style="font-size:2.11666656px;stroke-width:0.26458332">32</tspan></text> <text xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" - x="-76.199989" - y="27.124994" - id="text11384-1"><tspan + style="font-style:normal;font-weight:normal;font-size:2.11666656px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332" + x="-18.223013" + y="41.789455" + id="text5568-5-8-0-9" + transform="rotate(-90.138025)"><tspan sodipodi:role="line" - id="tspan11382-4" - x="-76.199989" - y="27.124994" - style="font-size:3.52777767px;stroke-width:0.26458332">input</tspan></text> + id="tspan5566-19-2-0-5" + x="-18.223013" + y="41.789455" + style="font-size:2.11666656px;stroke-width:0.26458332">32<tspan + style="font-size:1.37583315px;baseline-shift:super;stroke-width:0.26458332" + id="tspan3635-7">3</tspan></tspan></text> + <path + style="fill:none;stroke:#00549f;stroke-width:0.16437426;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-6-3-9-6-7-5-8)" + d="M 56.521201,16.647629 H 59.20198" + id="path4524-1-9-1-0-1-6-7" + inkscape:connector-curvature="0" /> + <rect + style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-4" + width="2.6458333" + height="13.229167" + x="-73.554169" + y="9.9270782" /> + <rect + style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-4-9" + width="2.6458333" + height="13.229167" + x="-66.675003" + y="10.191662" /> + <rect + style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-4-4" + width="2.6458333" + height="13.229167" + x="-52.235607" + y="24.639839" /> + <rect + style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-4-9-5" + width="2.6458333" + height="13.229167" + x="-45.356441" + y="24.904423" /> + <rect + style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-4-4-4" + width="2.6458333" + height="13.229167" + x="-31.389141" + y="39.216366" /> + <rect + style="fill:#fabe50;fill-opacity:1;stroke:#000000;stroke-width:0.1118034;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4522-4-9-5-4" + width="2.6458333" + height="13.229167" + x="-24.509977" + y="39.480949" /> </g> </svg> diff --git a/Bericht/Bilder/UNet_MaxPlanck.png b/Bericht/Bilder/UNet_MaxPlanck.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd5d9211344db6b22680741ea1d3242ddd33658 Binary files /dev/null and b/Bericht/Bilder/UNet_MaxPlanck.png differ diff --git a/UNet/NormalizeTrainingdata_64.ipynb b/UNet/NormalizeTrainingdata_64.ipynb index b1e0b30fba2b39047eb519f12acc86cf577d32ee..fbc2f92345358e96ea4a804f95d9849fda5d9744 100644 --- a/UNet/NormalizeTrainingdata_64.ipynb +++ b/UNet/NormalizeTrainingdata_64.ipynb @@ -14,14 +14,12 @@ "source": [ "import torch\n", "import numpy as np\n", - "import torch.nn as nn\n", - "from torch.utils.data import TensorDataset\n", - "import sklearn.preprocessing as sp\n" + "from torch.utils.data import TensorDataset\n" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -38,6 +36,8 @@ "source": [ "training_data = np.load('E:/Data/damask3/UNet/Input/Training_data_64.npy')\n", "training_label = np.load('E:/Data/damask3/UNet/Input/Training_labels_64.npy')\n", + "training_data = training_data[0:50]\n", + "training_label = training_label[0:50]\n", "\n", "if training_data.shape[0] != training_label.shape[0]:\n", " print('label and data have not the same size')\n", @@ -48,7 +48,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": { "id": "lUnBE7T4q3Pi" }, @@ -72,7 +72,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -85,8 +85,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "size of input is torch.Size([791, 6, 64, 64, 64])\n", - "size of label is torch.Size([791, 64, 64, 64])\n" + "size of input is torch.Size([50, 2, 64, 64, 64])\n", + "size of label is torch.Size([50, 64, 64, 64])\n" ] } ], @@ -95,8 +95,9 @@ "phase= data[:,4,:,:,:].reshape(data.shape[0], 1,64,64,64)\n", "new_phase = np.ones(phase.shape) - phase #input[4]: martinsite, input[5]:ferrit\n", "#new_training_data = np.append(data,new_channel,axis=1)\n", - "input = np.append(angles,phase,axis=1)\n", - "input = np.append(input,new_phase,axis=1)\n", + "#input = np.append(angles,phase,axis=1)\n", + "#input = np.append(input,new_phase,axis=1)\n", + "input = np.append(phase,new_phase,axis=1)\n", "\n", "label = torch.from_numpy(training_label)\n", "input = torch.from_numpy(input)\n", @@ -112,7 +113,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 4, "metadata": { "id": "Kgd1WhOODim3" }, @@ -130,15 +131,15 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 5, "metadata": { "id": "-Rbt8Brb9mM_" }, "outputs": [], "source": [ "dataset = TensorDataset(input,label_normalized) # create the pytorch dataset \n", - "np.save('E:/Data/damask3/UNet/Input/Norm_min_max_64_angles.npy',[min_label, max_label])\n", - "torch.save(dataset,'E:/Data/damask3/UNet/Input/TD_norm_64_angles.pt')\n" + "np.save('E:/Data/damask3/UNet/Input/Norm_min_max_64_subset_phase.npy',[min_label, max_label])\n", + "torch.save(dataset,'E:/Data/damask3/UNet/Input/TD_norm_64_subset_phase.pt')\n" ] } ], diff --git a/UNet/postprocessing_new.ipynb b/UNet/postprocessing_new.ipynb index 9fedc11e1f25ebd293f1629a054a76dc0ee7f31e..47da6ef5912639bae19da018529e91158556a719 100644 --- a/UNet/postprocessing_new.ipynb +++ b/UNet/postprocessing_new.ipynb @@ -2,19 +2,19 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import torch\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", - "import UNet_V15 as UNet\n", + "import UNet_V15 as UNet15\n", + "import UNet_V9_3 as UNet9\n", "import pyvista as pv\n", "from matplotlib.colors import ListedColormap\n", "import copy\n", - "import scipy.stats as stats\n", - "import pylab as pl" + "\n" ] }, { @@ -23,7 +23,7 @@ "metadata": {}, "outputs": [], "source": [ - "def predict_stress(image_id, normalization, model, dataset,grain_data, threshold = 0.1):\n", + "def predict_stress(image_id, normalization, model, dataset,grain_data, UNet,threshold = 0.1):\n", " input, output = dataset[image_id]\n", " grain,_ = grain_data[image_id]\n", " grain = copy.deepcopy(grain)\n", @@ -33,7 +33,7 @@ " output = copy.deepcopy(output)\n", " input = torch.unsqueeze(input,0)\n", " output = torch.unsqueeze(output,0)\n", - " xb = UNet.to_device(input, device)\n", + " xb = UNet.to_device(input, device_9)\n", " model.eval()\n", " prediction = model(xb)\n", " input = input.detach().numpy()\n", @@ -53,8 +53,8 @@ " output_rescale = output.reshape(output.shape[2],output.shape[3],output.shape[4])\n", " if normalization is not None:\n", " min_label, max_label = normalization\n", - " output_rescale *= max_label.numpy()\n", - " output_rescale += min_label.numpy()\n", + " output_rescale *= max_label\n", + " output_rescale += min_label\n", " return output_rescale\n", "\n", "\n", @@ -64,14 +64,15 @@ " orange = np.array([245/256, 167/256, 0/256, 1])\n", " red = np.array([203/256, 6/256, 29/256, 1])\n", " bordeaux = np.array([160/256, 15/256, 53/256, 1])\n", + " blue = np.array([0/256, 84/256, 159/256, 1])\n", "\n", " mapping = np.linspace(mesh['error'].min(), mesh['error'].max(),256)\n", " newcolors = np.empty((256,4))\n", - " newcolors[mapping >=0.5] = bordeaux\n", - " newcolors[mapping <0.5] = red\n", - " newcolors[mapping <0.3] = orange\n", - " newcolors[mapping <0.1] = yellow\n", - " newcolors[mapping <0.05] = black\n", + " newcolors[mapping >=0.15] = red\n", + " #newcolors[mapping <0.5] = red\n", + " #newcolors[mapping <0.3] = orange\n", + " newcolors[mapping <0.15] = blue\n", + " #newcolors[mapping <0.05] = black\n", " return ListedColormap(newcolors)\n", "\n", "\n", @@ -117,7 +118,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -138,7 +139,8 @@ " colormap_error = get_colormap(grid_1, threshold)\n", " p = pv.Plotter(notebook=False,shape=(3,1))\n", " sargs_grain = dict(height=0.75, vertical=True, position_x=0.1, position_y=0.05, n_labels=0)\n", - " sargs = dict(height=0.75, vertical=True, position_x=0.1, position_y=0.05)\n", + " sargs_stress = dict(height=0.75, vertical=True, position_x=0.1, position_y=0.05)\n", + " sargs_error = dict(height=0.75, vertical=True, position_x=0.1, position_y=0.05, n_labels = 0)\n", "\n", "\n", "\n", @@ -147,28 +149,31 @@ " slc_2 = grid_2.slice(normal=normal, origin=origin)\n", " slc_3 = grid_3.slice(normal=normal, origin=origin)\n", " p.subplot(0,0)\n", - " p.add_mesh(slc_2, name=\"my_slice_2\", cmap = 'RdBu', annotations = annotations, scalar_bar_args=sargs_grain)\n", + " p.add_mesh(slc_2, name=\"my_slice_2\", cmap = 'RdBu', annotations = annotations_grain, scalar_bar_args=sargs_grain)\n", " p.subplot(2,0)\n", - " p.add_mesh(slc_1, name=\"my_slice_1\",clim=[0.01, 1.0], below_color = 'blue', above_color = 'red', cmap = colormap_error, scalar_bar_args=sargs)\n", + " p.add_mesh(slc_1, name=\"my_slice_1\", cmap = colormap_error,annotations = annotations_error, scalar_bar_args=sargs_error)\n", " p.subplot(1,0)\n", - " p.add_mesh(slc_3, name=\"my_slice_3\", scalar_bar_args=sargs)\n", + " p.add_mesh(slc_3, name=\"my_slice_3\", scalar_bar_args=sargs_stress)\n", "\n", " p.subplot(0,0)\n", - " annotations = {\n", + " annotations_grain = {\n", " 0: 'Ferrite',\n", " grains.max(): 'Martensite',\n", " }\n", + " annotations_error = {\n", + " 0.15: '15%'\n", + " }\n", " p.add_title('Grains',font_size=10)\n", - " p.add_mesh(grid_2 ,opacity=0, cmap = 'RdBu', annotations = annotations, scalar_bar_args=sargs_grain)\n", + " p.add_mesh(grid_2 ,opacity=0, cmap = 'RdBu', annotations = annotations_grain, scalar_bar_args=sargs_grain)\n", " p.add_plane_widget(my_plane_func)\n", " p.subplot(2,0)\n", " p.add_title('Error',font_size=10)\n", - " p.add_mesh(grid_1,scalars = \"error\" ,clim=[0.01, 1.0], below_color = 'blue', above_color = 'red',opacity=0)\n", + " p.add_mesh(grid_1,scalars = \"error\",opacity=0, scalar_bar_args=sargs_error)\n", " p.add_plane_widget(my_plane_func)\n", "\n", " p.subplot(1,0)\n", " p.add_title('Stress',font_size=10)\n", - " p.add_mesh(grid_3,scalars = \"stress\" ,opacity=0)\n", + " p.add_mesh(grid_3,scalars = \"stress\",annotations = annotations_error ,opacity=0)\n", " p.add_plane_widget(my_plane_func)\n", "\n", " p.link_views()\n", @@ -177,81 +182,132 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "no GPU found\n" + "no GPU found\n", + "sample number: 1637\n", + "Maximum error is : 74.46 %\n", + "average error is : 10.06 %\n", + "60.49% of voxels have a diviation less than 10.0%\n" ] } ], "source": [ - "Training_data = torch.load('F:/RWTH/HiWi_IEHK/DAMASK3/UNet/Trainingsdata/TD_norm_32_phase.pt')\n", - "grain_data = torch.load('F:/RWTH/HiWi_IEHK/DAMASK3/UNet/Trainingsdata/TD_norm_32_phase.pt')\n", - "history = torch.load('F:/RWTH/HiWi_IEHK/DAMASK3/UNet/output/V15/history_V15.pt')\n", + "path_to_UNET = 'E:/Data/damask3'\n", + "UNet = UNet9\n", + "Training_data_32 = torch.load(f'{path_to_UNET}/UNet/Input/TD_norm_32_phase.pt')\n", + "normalization_32 = np.load(f'{path_to_UNET}/UNet/Input/Norm_min_max_32_phase.npy', allow_pickle=True)\n", + "grain_data_32 = torch.load(f'{path_to_UNET}/UNet/Input/TD_norm_32_angles.pt')\n", + "model_9 = UNet.UNet()\n", + "model_9.load_state_dict(torch.load(f'{path_to_UNET}/UNet/output/V9_diffLR/Unet_dict_V9_3.pth',map_location=torch.device('cpu')))\n", + "device_9 = UNet.get_default_device()\n", + "model_9 = UNet.to_device(model_9.double(), device_9)\n", + "\n", + "#sample_index = np.random.randint(low=0, high=len(Training_data_32))\n", + "sample_index = 1637\n", + "print(f'sample number: {sample_index}')\n", + "predict_stress(sample_index, normalization = normalization_32, model = model_9, dataset = Training_data_32,grain_data =grain_data_32,UNet=UNet)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "path_to_UNET = 'E:/Data/damask3'\n", + "UNet = UNet15\n", + "\n", + "Training_data_64 = torch.load(f'{path_to_UNET}/UNet/Input/TD_norm_64_phase.pt')\n", + "grain_data_64 = torch.load(f'{path_to_UNET}/UNet/Input/TD_norm_64_angles.pt')\n", + "#history = torch.load(f'{path_to_UNET}/UNet/output/V15/history_V15.pt')\n", "#history_2 = torch.load('E:/Data/damask3/UNet/output/history_test.pt')\n", - "normalization = np.load('F:/RWTH/HiWi_IEHK/DAMASK3/UNet/Trainingsdata/Norm_min_max_32_phase.npy', allow_pickle=True)\n", - "model = UNet.UNet()\n", - "model.load_state_dict(torch.load('F:/RWTH/HiWi_IEHK/DAMASK3/UNet/output/V15/Unet_dict_V15.pth',map_location=torch.device('cpu')))\n", - "device = UNet.get_default_device()\n", - "model = UNet.to_device(model.double(), device)" + "normalization_64 = np.load(f'{path_to_UNET}/UNet/Input/Norm_min_max_64_phase.npy', allow_pickle=True)\n", + "\n", + "model_15 = UNet.UNet()\n", + "model_15.load_state_dict(torch.load(f'{path_to_UNET}/UNet/output/V15/Unet_dict_V15.pth',map_location=torch.device('cpu')))\n", + "\n", + "device_15 = UNet.get_default_device()\n", + "\n", + "model_15 = UNet.to_device(model_15.double(), device_15)\n", + "\n", + "sample_index = np.random.randint(low=0, high=len(Training_data_64))\n", + "print(f'sample number: {sample_index}')\n", + "predict_stress(sample_index, normalization = normalization_64, model = model_15, dataset = Training_data_64,UNet = UNet,grain_data =grain_data_64)" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 25, "metadata": {}, "outputs": [ { - "data": { - "image/png": "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36OPPkpaWhqBQIDx48ezbNkybrrpJp566ilmzZpF8+ZVZwRZtGgRb775JvPnz6+Ya2/MmDGkpqayevVq3nvvPV599VXOPfdcPvnkEy688MIa7+/iiy/mueeeY8yYMdx///089NBDTJ06Fbfbzfr164mJialoVnziiSd44YUXGDlyJPn5+cSG1pkTkZEl32tR3gcVLKl9PZa9lZQFKl7/MqX6lViFOFINGDCAHTt2sGXLFpYuXUpqaiodOnTAMAzuvvtu+vbty3HHHcfmzZvZvn17jeeZO3duRaDo27cvffv2rdj34YcfMnDgQAYMGMCKFStYubL2J01++eUXzjjjDBISEkhMTOTMM8/k559/BqBz5870798fgEGDBuHz+Wo8T25uLjk5OYwZMwaASy65hLlz51aU8YILLuCdd96hvN975MiR3HrrrTz77LPk5ORQ3/7wpkrerVqoGLPfySitWw2qRVIMBVmF/DJlnDyMKg6p2mo6Demcc87h448/Ztu2bUyaNAmA6dOnk5mZyaJFi7DZbNjtdoqLi+t87vXr1/PEE0+Yk8SmpnLppZfW6zzlKk8ga7Vawzbx1cTj8TB37ly++uorHn30UZYvX47L5cLpdDJz5kxGjhzJt99+i8Mhj3RESmpQtahPH1RWfgm+rELuPtkhwUk0WZMmTeL999/n448/5pxzzNb63NxcWrZsic1mY9asWWzYsKHWcxxzzDG8++67APz1118sW7YMgN27d5OQkECzZs3Yvn07X3/9dcUxSUlJ1fbzjB49ms8//5zCwkIKCgr47LPPGD267iv3NmvWjNTU1Ira19tvv82YMWMIBoNs2rSJcePG8dhjj5Gbm0t+fj5r166lT58+TJkyhSFDhuD1Htjm1iOd1KBqUd4HFSyOPED5ssw5/7q1lEEQounq1asXeXl5tGvXjjZtzGf7LrjgAk455RT69OnD4MGDw9Ykrr32Wi677DI0TUPTNAYNGgRAv379GDBgAA6Hgw4dOjBy5MiKY6666ipOPPFE2rZty6xZsyrSBw4cyKWXXsrQoUMBczmNAQMG1NqcV5O33nqLa665hsLCQrp06cKbb75JIBDgwgsvJDc3F8MwuOmmm0hJSeG+++5j1qxZWCwWevXqxUknnVTn6zVlMpt5LYpXrWL9aafTburTJJ94YkTHfLwog9s/WsqPt42h6wFc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", - "text/plain": [ - "<Figure size 432x288 with 2 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" + "name": "stdout", + "output_type": "stream", + "text": [ + "sample number: 982\n", + "Maximum error is : 142.9 %\n", + "average error is : 15.91 %\n", + "43.13% of voxels have a diviation less than 10.0%\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "ERROR:root:1: #version 150\n" + ] } ], "source": [ - "plot_losses(history)" + "sample_index = np.random.randint(low=0, high=len(Training_data_32))\n", + "print(f'sample number: {sample_index}')\n", + "predict_stress(sample_index, normalization = normalization_32, model = model_9, dataset = Training_data_32,grain_data =grain_data_32)" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "sample number: 694\n" + "sample number: 83\n" ] }, { - "ename": "ValueError", - "evalue": "not enough values to unpack (expected 3, got 2)", + "ename": "RuntimeError", + "evalue": "[enforce fail at ..\\c10\\core\\CPUAllocator.cpp:76] data. DefaultCPUAllocator: not enough memory: you tried to allocate 14386462720 bytes.", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32mC:\\Users\\CHRIST~1\\AppData\\Local\\Temp/ipykernel_14232/2407959253.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0msample_index\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrandom\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrandint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlow\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhigh\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mTraining_data\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34mf'sample number: {sample_index}'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0mpredict_stress\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msample_index\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnormalization\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnormalization\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmodel\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdataset\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTraining_data\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mgrain_data\u001b[0m \u001b[1;33m=\u001b[0m\u001b[0mgrain_data\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;32mC:\\Users\\CHRIST~1\\AppData\\Local\\Temp/ipykernel_14232/3453320516.py\u001b[0m in \u001b[0;36mpredict_stress\u001b[1;34m(image_id, normalization, model, dataset, grain_data, threshold)\u001b[0m\n\u001b[0;32m 15\u001b[0m \u001b[0mprediction\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mprediction\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdetach\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 16\u001b[0m \u001b[0moutput\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0moutput\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdetach\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 17\u001b[1;33m \u001b[0mprediction\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mrescale\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mprediction\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnormalization\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 18\u001b[0m \u001b[0moutput\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mrescale\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0moutput\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnormalization\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 19\u001b[0m \u001b[0merror\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mabs\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0moutput\u001b[0m \u001b[1;33m-\u001b[0m \u001b[0mprediction\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m/\u001b[0m\u001b[0moutput\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mC:\\Users\\CHRIST~1\\AppData\\Local\\Temp/ipykernel_14232/3453320516.py\u001b[0m in \u001b[0;36mrescale\u001b[1;34m(output, normalization)\u001b[0m\n\u001b[0;32m 28\u001b[0m \u001b[0moutput_rescale\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0moutput\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0moutput\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0moutput\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0moutput\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m4\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mnormalization\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 30\u001b[1;33m \u001b[0mmin_label\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmax_label\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0m_\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnormalization\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 31\u001b[0m \u001b[0moutput_rescale\u001b[0m \u001b[1;33m*=\u001b[0m \u001b[0mmax_label\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 32\u001b[0m \u001b[0moutput_rescale\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[0mmin_label\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mValueError\u001b[0m: not enough values to unpack (expected 3, got 2)" + "\u001b[1;31mRuntimeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_23188/176243172.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0msample_index\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrandom\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrandint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlow\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhigh\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mTraining_data_64\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34mf'sample number: {sample_index}'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0mpredict_stress\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msample_index\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnormalization\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnormalization_64\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmodel\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmodel_15\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdataset\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTraining_data_64\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mgrain_data\u001b[0m \u001b[1;33m=\u001b[0m\u001b[0mgrain_data_64\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_23188/2786384287.py\u001b[0m in \u001b[0;36mpredict_stress\u001b[1;34m(image_id, normalization, model, dataset, grain_data, threshold)\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[0mxb\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mUNet15\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mto_device\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minput\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdevice_15\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 12\u001b[0m \u001b[0mmodel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0meval\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 13\u001b[1;33m \u001b[0mprediction\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mxb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 14\u001b[0m \u001b[0minput\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdetach\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 15\u001b[0m \u001b[0mprediction\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mprediction\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdetach\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Miniconda3\\lib\\site-packages\\torch\\nn\\modules\\module.py\u001b[0m in \u001b[0;36m_call_impl\u001b[1;34m(self, *input, **kwargs)\u001b[0m\n\u001b[0;32m 1100\u001b[0m if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks\n\u001b[0;32m 1101\u001b[0m or _global_forward_hooks or _global_forward_pre_hooks):\n\u001b[1;32m-> 1102\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mforward_call\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0minput\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1103\u001b[0m \u001b[1;31m# Do not call functions when jit is used\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1104\u001b[0m \u001b[0mfull_backward_hooks\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnon_full_backward_hooks\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32me:\\Data\\damask3\\UNet\\UNet_V15.py\u001b[0m in \u001b[0;36mforward\u001b[1;34m(self, x)\u001b[0m\n\u001b[0;32m 149\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mforward\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 150\u001b[0m \u001b[0menc_ftrs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mencoder\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 151\u001b[1;33m \u001b[0mout\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdecoder\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0menc_ftrs\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0menc_ftrs\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 152\u001b[0m \u001b[1;31m#out = self.head(out)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 153\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mout\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Miniconda3\\lib\\site-packages\\torch\\nn\\modules\\module.py\u001b[0m in \u001b[0;36m_call_impl\u001b[1;34m(self, *input, **kwargs)\u001b[0m\n\u001b[0;32m 1100\u001b[0m if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks\n\u001b[0;32m 1101\u001b[0m or _global_forward_hooks or _global_forward_pre_hooks):\n\u001b[1;32m-> 1102\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mforward_call\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0minput\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1103\u001b[0m \u001b[1;31m# Do not call functions when jit is used\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1104\u001b[0m \u001b[0mfull_backward_hooks\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnon_full_backward_hooks\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32me:\\Data\\damask3\\UNet\\UNet_V15.py\u001b[0m in \u001b[0;36mforward\u001b[1;34m(self, x, encoder_features)\u001b[0m\n\u001b[0;32m 95\u001b[0m \u001b[1;31m#print(f'size after cropping&cat: {x.size()}')\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 96\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 97\u001b[1;33m \u001b[0mx\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdec_blocks\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 98\u001b[0m \u001b[1;31m#print(f'size after convolution: {x.size()}')\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 99\u001b[0m \u001b[0mx\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Miniconda3\\lib\\site-packages\\torch\\nn\\modules\\module.py\u001b[0m in \u001b[0;36m_call_impl\u001b[1;34m(self, *input, **kwargs)\u001b[0m\n\u001b[0;32m 1100\u001b[0m if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks\n\u001b[0;32m 1101\u001b[0m or _global_forward_hooks or _global_forward_pre_hooks):\n\u001b[1;32m-> 1102\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mforward_call\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0minput\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1103\u001b[0m \u001b[1;31m# Do not call functions when jit is used\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1104\u001b[0m \u001b[0mfull_backward_hooks\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnon_full_backward_hooks\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32me:\\Data\\damask3\\UNet\\UNet_V15.py\u001b[0m in \u001b[0;36mforward\u001b[1;34m(self, x)\u001b[0m\n\u001b[0;32m 31\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbatch_norm_2\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnn\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mBatchNorm3d\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mout_2_c\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 32\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mforward\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 33\u001b[1;33m \u001b[0mx\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbatch_norm_1\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrelu\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdroptout\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpointwise_1\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdepthwise_1\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 34\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbatch_norm_2\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrelu\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdroptout\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpointwise_2\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdepthwise_2\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 35\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Miniconda3\\lib\\site-packages\\torch\\nn\\modules\\module.py\u001b[0m in \u001b[0;36m_call_impl\u001b[1;34m(self, *input, **kwargs)\u001b[0m\n\u001b[0;32m 1100\u001b[0m if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks\n\u001b[0;32m 1101\u001b[0m or _global_forward_hooks or _global_forward_pre_hooks):\n\u001b[1;32m-> 1102\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mforward_call\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0minput\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1103\u001b[0m \u001b[1;31m# Do not call functions when jit is used\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1104\u001b[0m \u001b[0mfull_backward_hooks\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnon_full_backward_hooks\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Miniconda3\\lib\\site-packages\\torch\\nn\\modules\\conv.py\u001b[0m in \u001b[0;36mforward\u001b[1;34m(self, input)\u001b[0m\n\u001b[0;32m 588\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 589\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mforward\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mTensor\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m->\u001b[0m \u001b[0mTensor\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 590\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_conv_forward\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minput\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mweight\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbias\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 591\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 592\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Miniconda3\\lib\\site-packages\\torch\\nn\\modules\\conv.py\u001b[0m in \u001b[0;36m_conv_forward\u001b[1;34m(self, input, weight, bias)\u001b[0m\n\u001b[0;32m 583\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgroups\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 584\u001b[0m )\n\u001b[1;32m--> 585\u001b[1;33m return F.conv3d(\n\u001b[0m\u001b[0;32m 586\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mweight\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbias\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstride\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpadding\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdilation\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgroups\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 587\u001b[0m )\n", + "\u001b[1;31mRuntimeError\u001b[0m: [enforce fail at ..\\c10\\core\\CPUAllocator.cpp:76] data. DefaultCPUAllocator: not enough memory: you tried to allocate 14386462720 bytes." ] } ], "source": [ - "sample_index = np.random.randint(low=0, high=len(Training_data))\n", + "sample_index = np.random.randint(low=0, high=len(Training_data_64))\n", "print(f'sample number: {sample_index}')\n", - "predict_stress(sample_index, normalization = normalization, model = model, dataset = Training_data,grain_data =grain_data)" + "predict_stress(sample_index, normalization = normalization_64, model = model_15, dataset = Training_data_64,grain_data =grain_data_64)" ] }, { @@ -316,7 +372,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.9.5" }, "orig_nbformat": 4 },