1"use strict";(self.webpackChunkmilkv_website=self.webpackChunkmilkv_website||[]).push([[7080],{14140:(e,n,l)=>{l.r(n),l.d(n,{assets:()=>m,contentTitle:()=>o,default:()=>r,frontMatter:()=>i,metadata:()=>t,toc:()=>a});var s=l(85893),p=l(11151);const i={},o="MobileNetV2 Example Code",t={id:"megrez/development-guide/runtime-sample/mobilenetv2",title:"MobileNetV2 Example Code",description:"Install MobileNetV2 Example",source:"@site/docs/megrez/development-guide/runtime-sample/mobilenetv2.md",sourceDirName:"megrez/development-guide/runtime-sample",slug:"/megrez/development-guide/runtime-sample/mobilenetv2",permalink:"/docs/megrez/development-guide/runtime-sample/mobilenetv2",draft:!1,unlisted:!1,editUrl:"https://github.com/milk-v/milkv.io/edit/main/docs/megrez/development-guide/runtime-sample/mobilenetv2.md",tags:[],version:"current",frontMatter:{},sidebar:"megrez",previous:{title:"ResNet50 Example Code",permalink:"/docs/megrez/development-guide/runtime-sample/resnet50"},next:{title:"Qwen2 Example Code",permalink:"/docs/megrez/development-guide/runtime-sample/qwen2"}},m={},a=[{value:"Install MobileNetV2 Example",id:"install-mobilenetv2-example",level:2},{value:"Directory Structure",id:"directory-structure",level:2},{value:"src Directory",id:"src-directory",level:3},{value:"models Directory",id:"models-directory",level:3},{value:"Example Usage",id:"example-usage",level:2}];function c(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,p.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"mobilenetv2-example-code",children:"MobileNetV2 Example Code"}),"\n",(0,s.jsx)(n.h2,{id:"install-mobilenetv2-example",children:"Install MobileNetV2 Example"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"sudo apt install es-sdk-sample-npu-mobilenetv2\n"})}),"\n",(0,s.jsxs)(n.p,{children:["After installation, the sample will be located at the ",(0,s.jsx)(n.code,{children:"/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample"})," directory."]}),"\n",(0,s.jsx)(n.h2,{id:"directory-structure",children:"Directory Structure"}),"\n",(0,s.jsx)(n.p,{children:"The detailed directory structure is as follows:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"debian@rockos-eswin:/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample$ tree\n.\n\u251c\u2500\u2500 bin\n\u2502 \u2514\u2500\u2500 sample_npu\n\u251c\u2500\u2500 models\n\u2502 \u2514\u2500\u2500 mobilenet\n\u2502 \u251c\u2500\u2500 es_mobilenet_classes.txt\n\u2502 \u251c\u2500\u2500 es_mobilenet_post_process.json\n\u2502 \u251c\u2500\u2500 es_mobilenet_pre_process.json\n\u2502 \u251c\u2500\u2500 git_mobilenetv2_mix_4x3x224x224_dyn_latency.model\n\u2502 \u251c\u2500\u2500 git_mobilenetv2_mix_4x3x224x224_dyn_latency.ofmap_order.txt\n\u2502 \u251c\u2500\u2500 git_mobilenetv2_mix_4x3x224x224_dyn.model\n\u2502 \u251c\u2500\u2500 git_mobilenetv2_mix_4x3x224x224_dyn_throughput.model\n\u2502 \u251c\u2500\u2500 git_mobilenetv2_mix_4x3x224x224_dyn_throughput.ofmap_order.txt\n\u2502 \u251c\u2500\u2500 input\n\u2502 \u2502 \u2514\u2500\u2500 pictures\n\u2502 \u2502 \u2514\u2500\u2500 input0\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00003966.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00009032.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00011712.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00016098.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00017212.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00017773.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00021709.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00022662.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00025785.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00026363.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00027830.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00030734.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00031637.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00033024.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00033154.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00033435.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00034978.JPEG\n\u2502 \u2502 \u251c\u2500\u2500 ILSVRC2012_val_00040463.JPEG\n\u2502 \u2502 \u2514\u2500\u2500 ILSVRC2012_val_00049043.JPEG\n\u2502 \u2514\u2500\u2500 model.json\n\u2514\u2500\u2500 src\n \u251c\u2500\u2500 build.sh\n \u251c\u2500\u2500 CMakeLists.txt\n \u251c\u2500\u2500 README.md\n \u251c\u2500\u2500 sample_npu_comm.cpp\n \u251c\u2500\u2500 sample_npu_comm.h\n \u251c\u2500\u2500 sample_npu.cpp\n \u2514\u2500\u2500 utils\n \u251c\u2500\u2500 json\n \u2502 \u251c\u2500\u2500 cJSON.cpp\n \u2502 \u2514\u2500\u2500 cJSON.h\n \u251c\u2500\u2500 postprocess\n \u2502 \u251c\u2500\u2500
1EsPostProcess.cpp\n \u2502 \u2514\u2500\u2500 EsPostProcess.h\n \u251c\u2500\u2500 preprocess\n \u2502 \u251c\u2500\u2500 EsHwPreProcess.cpp\n \u2502 \u251c\u2500\u2500 EsHwPreProcess.h\n \u2502 \u2514\u2500\u2500 IPreprocess.h\n \u251c\u2500\u2500 sample_npu_utils.cpp\n \u251c\u2500\u2500 sample_npu_utils.h\n \u2514\u2500\u2500 vdec\n \u251c\u2500\u2500 common\n \u2502 \u251c\u2500\u2500 sample_comm.h\n \u2502 \u251c\u2500\u2500 sample_comm_sys.cpp\n \u2502 \u251c\u2500\u2500 sample_comm_vdec.cpp\n \u2502 \u2514\u2500\u2500 sample_comm_vps.cpp\n \u251c\u2500\u2500 EsVdec.cpp\n \u251c\u2500\u2500 EsVdec.h\n \u251c\u2500\u2500 IVdec.h\n \u2514\u2500\u2500 MemoryPool.h\n\n"})}),"\n",(0,s.jsx)(n.h3,{id:"src-directory",children:"src Directory"}),"\n",(0,s.jsxs)(n.p,{children:["The entry point for the NPU ResNet50 example code is the ",(0,s.jsx)(n.code,{children:"es_ai_inference.cpp"})," file."]}),"\n",(0,s.jsx)(n.p,{children:"The README.md file contains instructions for compiling the ResNet50 sample code and the running commands."}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"utils"})," folder mainly contains auxiliary tool libraries, such as image preprocessing (preprocess) and postprocessing of inference data (postprocess)."]}),"\n",(0,s.jsx)(n.h3,{id:"models-directory",children:"models Directory"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Configuration files:"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"es_resnet50_classes.txt"})," contains category label information."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"es_resnet50_pre_process.json"})," contains preprocessing strategies and parameters."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"es_resnet50_post_process.json"})," contains parameters related to postprocessing operators."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"input"})," directory:\nThis directory stores the raw image files for inference."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Binary directory (",(0,s.jsx)(n.code,{children:"bin"}),"):\nThis directory contains the binary executable programs."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"cd /opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/bin\nsudo ./sample_npu -s 1 -m /opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/ -i /opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/ -p /opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/es_mobilenet_pre_process.json -q /opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/es_mobilenet_post_process.json -t /opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/es_mobilenet_classes.txt\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"debian@rockos-eswin:/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/bin$ sudo ./sample_npu -s 1 -m /opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/ -i /opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/ -p /opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/es_mobilenet_pre_process.json -q /opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/es_mobilenet_post_process.json -t /opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/es_mobilenet_classes.txt\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00009032.JPEG: label(742: ('printer'), confidence(0.556628)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00040463.JPEG: label(259: ('Pomeranian'), confidence(0.999186)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00003966.JPEG: label(734: ('police van'), confidence(0.882855)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00021709.JPEG: label(144: ('pelican'), confidence(0.999989)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00031637.JPEG: label(50: ('American alligator'), confidence(0.968207)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00034978.JPEG: label(563: ('fountain pen'), confidence(0.992167)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00016098.JPEG: label(717: ('pickup'), confidence(0.964826)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00049043.JPEG: label(349: ('bighorn'), confidence(0.888428)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00033024.JPEG: label(763: ('revolver'), confidence(0.980104)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00033154.JPEG: label(622: ('lens cap'), confidence(0.972486)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00027830.JPEG: label(207: ('golden retriever'), confidence(0.742428)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00033435.JPEG: label(22: ('bald eagle'), confidence(0.999023)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00017212.JPEG: label(340: ('zebra'), confidence(0.999896)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00030734.JPEG: label(89: ('sulphur-crested cockatoo'), confidence(0.999994)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00011712.JPEG: label(76: ('tarantula'), confidence(0.999318)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00017773.JPEG: label(269: ('timber wolf'), confidence(0.985512)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00025785.JPEG: label(96: ('toucan'), confidence(0.962351)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00022662.JPEG: label(759: ('reflex camera'), confidence(0.959045)\n/opt/eswin/sample-code/npu_sample/npu_mobilenetv2_sample/models/mobilenet/input/pictures/input0/ILSVRC2012_val_00026363.JPEG: label(480: ('cash machine'), confidence(0.999989)\n"})})]})}function r(e={}){const{wrapper:n}={...(0,p.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},11151:(e,n,l)=>{l.d(n,{Z:()=>t,a:()=>o});var s=l(67294);const p={},i=s.createContext(p);function o(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(p):e.components||p:o(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.