import{s as Pi,n as _i,o as Li}from"../chunks/scheduler.7bc62968.js";import{S as Ii,i as Ni,g as a,s as l,r as s,A as Ui,h as r,f as i,c as o,j as Hi,u as p,x as $,k as Oi,y as Ri,a as n,v as m,d as f,t as u,w as d}from"../chunks/index.2f8492b0.js";import{C as Pe}from"../chunks/CodeBlock.4e96d6f7.js";import{H as h,E as Fi}from"../chunks/EditOnGithub.2a9ce03a.js";function Gi(Qt){let g,Ie,_e,Ne,w,Ue,v,Re,T,Fe,c,Dt=`The TensorFlow Model Optimization Toolkit is a suite of tools for optimizing machine learning models for deployment.
The TensorFlow Lite post-training quantization tool enable users to convert weights to 8 bit precision which reduces the trained model size by about 4 times.
The tools also include API for pruning and quantization during training if post-training quantization is insufficient.
These help user to reduce latency and inference cost, deploy models to edge devices with restricted resources and optimized execution for existing hardware or new special purpose accelerators.`,Ge,b,je,x,Kt="The Tensorflow Model Optimization Toolkit is available as a pip package, <code>tensorflow-model-optimization</code>. To install the package, run the following command:",Se,y,qe,k,We,M,Yt='For a hands-on guide on how to use the Tensorflow Model Optimization Toolkit, refer this <a href="https://github.com/johko/computer-vision-course/blob/main/notebooks/Unit%209%20-%20Model%20Optimization/tmo.ipynb" rel="nofollow">notebook</a>',Ae,C,Ee,z,Xe,H,Zt=`For optimizing model, PyTorch supports INT8 quantization compared to typical FP32 models which leads to 4x reduction in the model size and a 4x reduction in memory bandwidth requirements.
PyTorch supports multiple approaches to quantizing a deep learning model which are as follows:`,Je,O,ei="<li>Model is trained in FP32 and then the model is converted to INT8.</li> <li>Quantization aware training, where models quantization errors in both the forward and backward passes using fake-quantization modules.</li> <li>Represent quantized tensors and perform operations with them. They can be used to directly construct models that perform all or part of the computation in lower precision.</li>",Ve,P,ti='For more details on quantization in PyTorch, see <a href="https://pytorch.org/docs/stable/quantization.html" rel="nofollow">here</a>',Be,_,Qe,L,ii="PyTorch quantization is available as API in the PyTorch package. To use it simple install PyTorch and import the quantization API as follows:",De,I,Ke,N,Ye,U,ni='For a hands-on guide on how to use the Pytorch Quantization, refer this <a href="https://github.com/johko/computer-vision-course/blob/main/notebooks/Unit%209%20-%20Model%20Optimization/torch.ipynb" rel="nofollow">notebook</a>',Ze,R,et,F,tt,G,li=`ONNX Runtime is a cross-platform machine-learning model accelerator, with a flexible interface to integrate hardware-specific libraries.
ONNX Runtime can be used with models from PyTorch, Tensorflow/Keras, TFLite, scikit-learn, and other frameworks.
The benefits of using ONNX Runtime for Inferencing are as follows:`,it,j,oi="<li>Improve inference performance for a wide variety of ML models.</li> <li>Run on different hardware and operating systems.</li> <li>Train in Python but deploy into a C#/C++/Java app.</li> <li>Train and perform inference with models created in different frameworks.</li>",nt,S,ai='For more details on ONNX Runtime, see <a href="https://onnxruntime.ai/docs/" rel="nofollow">here</a>.',lt,q,ot,W,si=`ONNX Runtime has 2 python package and only one of these packages should be installed at a time in any one environment.
Use the GPU package if you want to use ONNX Runtime with GPU support.
The python package for ONNX Runtime is available as a pip package. To install the package, run the following command:`,at,A,st,E,ri="For GPU version, run the following command:",rt,X,pt,J,mt,V,pi='For a hands-on guide on how to use the ONNX Runtime, refer this <a href="https://github.com/johko/computer-vision-course/blob/main/notebooks/Unit%209%20-%20Model%20Optimization/onnx.ipynb" rel="nofollow">notebook</a>',ft,B,ut,Q,dt,D,mi=`NVIDIA® TensorRT™ is an SDK for optimizing trained deep learning models to enable high-performance inference.
TensorRT contains a deep learning inference optimizer for trained deep learning models, and a runtime for execution.
After user have trained their deep learning model in a framework of their choice, TensorRT enables user to run it with higher throughput and lower latency.`,$t,K,ht,Y,fi="TensorRT is available as a pip package, <code>tensorrt</code>. To install the package, run the following command:",gt,Z,wt,ee,ui='for other installation methods, see <a href="https://docs.nvidia.com/deeplearning/tensorrt/quick-start-guide/index.html#install" rel="nofollow">here</a>.',vt,te,Tt,ie,di='For a hands-on guide on how to use the TensorRT, refer this <a href="https://github.com/johko/computer-vision-course/blob/main/notebooks/Unit%209%20-%20Model%20Optimization/tensorrt.ipynb" rel="nofollow">notebook</a>',ct,ne,bt,le,xt,oe,$i=`The OpenVINO™ toolkit enables user to optimize a deep learning model from almost any framework and deploy it with best-in-class performance on a range of Intel® processors and other hardware platforms.
The benefits of using OpenVINO includes:`,yt,ae,hi="<li>link directly with OpenVINO Runtime to run inference locally or use OpenVINO Model Server to serve model inference from a separate server or within Kubernetes environment</li> <li>Write an application once, deploy it anywhere on your preferred device, language and OS</li> <li>has minimal external dependencies</li> <li>Reduces first-inference latency by using the CPU for initial inference and then switching to another device once the model has been compiled and loaded to memory</li>",kt,se,Mt,re,gi="Openvino is available as a pip package, <code>openvino</code>. To install the package, run the following command:",Ct,pe,zt,me,wi='For other installation methods, see <a href="https://docs.openvino.ai/2023.2/openvino_docs_install_guides_overview.html?VERSION=v_2023_2_0&amp;OP_SYSTEM=LINUX&amp;DISTRIBUTION=ARCHIVE" rel="nofollow">here</a>.',Ht,fe,Ot,ue,vi='For a hands-on guide on how to use the OpenVINO, refer this <a href="https://github.com/johko/computer-vision-course/blob/main/notebooks/Unit%209%20-%20Model%20Optimization/openvino.ipynb" rel="nofollow">notebook</a>',Pt,de,_t,$e,Lt,he,Ti=`Optimum serves as an extension of <a href="https://huggingface.co/docs/transformers" rel="nofollow">Transformers</a>, offering a suite of tools designed for optimizing performance in training and
running models on specific hardware, ensuring maximum efficiency. In the rapidly evolving AI landscape, specialized hardware and unique optimizations continue to emerge regularly.
Optimum empowers developers to seamlessly leverage these diverse platforms, maintaining the ease of use inherent in Transformers.
Platforms supported by optimum as of now are:`,It,ge,ci='<li><a href="https://huggingface.co/docs/optimum/habana/index" rel="nofollow">Habana</a></li> <li><a href="https://huggingface.co/docs/optimum/intel/index" rel="nofollow">Intel</a></li> <li><a href="https://github.com/huggingface/optimum-nvidia" rel="nofollow">Nvidia</a></li> <li><a href="https://huggingface.co/docs/optimum-neuron/index" rel="nofollow">AWS Trainium and Inferentia</a></li> <li><a href="https://huggingface.co/docs/optimum/amd/index" rel="nofollow">AMD</a></li> <li><a href="https://huggingface.co/docs/optimum/furiosa/index" rel="nofollow">FuriosaAI</a></li> <li><a href="https://huggingface.co/docs/optimum/onnxruntime/overview" rel="nofollow">ONNX Runtime</a></li> <li><a href="https://huggingface.co/docs/optimum/bettertransformer/overview" rel="nofollow">BetterTransformer</a></li>',Nt,we,Ut,ve,bi="Optimum is available as a pip package, <code>optimum</code>. To install the package, run the following command:",Rt,Te,Ft,ce,xi='For installation of accelerator-specific features, see <a href="https://huggingface.co/docs/optimum/installation" rel="nofollow">here</a>.',Gt,be,jt,xe,yi='For a hands-on guide on how to use Optimum for quantization, refer this <a href="https://github.com/johko/computer-vision-course/blob/main/notebooks/Unit%209%20-%20Model%20Optimization/optimum.ipynb" rel="nofollow">notebook</a>',St,ye,qt,ke,Wt,Me,ki=`Edge TPU is Google’s purpose-built ASIC designed to run AI at the edge. It delivers high performance in a small physical and power footprint, enabling the deployment of high-accuracy AI at the edge.
The benefits of using EdgeTPU includes:`,At,Ce,Mi="<li>Complements Cloud TPU and Google Cloud services to provide an end-to-end, cloud-to-edge, hardware + software infrastructure for AI-based solutions deployment</li> <li>High performance in a small physical and power footprint</li> <li>Combined custom hardware, open software, and state-of-the-art AI algorithms to provide high-quality, easy to deploy AI solutions for the edge</li>",Et,ze,Ci='For more details on EdgeTPU, see <a href="https://cloud.google.com/edge-tpu" rel="nofollow">here</a>',Xt,He,zi='For guide on how to setup and use EdgeTPU, refer this <a href="https://github.com/johko/computer-vision-course/blob/main/notebooks/Unit%209%20-%20Model%20Optimization/edge_tpu.ipynb" rel="nofollow">notebook</a>',Jt,Oe,Vt,Le,Bt;return w=new h({props:{title:"Model optimization tools and frameworks",local:"model-optimization-tools-and-frameworks",headingTag:"h1"}}),v=new h({props:{title:"Tensorflow Model optimization Toolkit (TMO)",local:"tensorflow-model-optimization-toolkit-tmo",headingTag:"h2"}}),T=new h({props:{title:"Overview",local:"overview",headingTag:"h3"}}),b=new h({props:{title:"Setup guide",local:"setup-guide",headingTag:"h3"}}),y=new Pe({props:{code:"cGlwJTIwaW5zdGFsbCUyMC1VJTIwdGVuc29yZmxvdy1tb2RlbC1vcHRpbWl6YXRpb24=",highlighted:'pip <span class="hljs-keyword">install</span> -U tensorflow-model-optimization',wrap:!1}}),k=new h({props:{title:"Hands-on guide",local:"hands-on-guide",headingTag:"h3"}}),C=new h({props:{title:"PyTorch Quantization",local:"pytorch-quantization",headingTag:"h2"}}),z=new h({props:{title:"Overview",local:"overview",headingTag:"h3"}}),_=new h({props:{title:"Setup guide",local:"setup-guide",headingTag:"h3"}}),I=new Pe({props:{code:"cGlwJTIwaW5zdGFsbCUyMHRvcmNoJTBBaW1wb3J0JTIwdG9yY2gucXVhbnRpemF0aW9u",highlighted:`<span class="hljs-title">pip</span> install torch
<span class="hljs-keyword">import</span> torch.quantization`,wrap:!1}}),N=new h({props:{title:"Hands-on guide",local:"hands-on-guide",headingTag:"h2"}}),R=new h({props:{title:"ONNX Runtime",local:"onnx-runtime",headingTag:"h2"}}),F=new h({props:{title:"Overview",local:"overview",headingTag:"h3"}}),q=new h({props:{title:"Setup guide",local:"setup-guide",headingTag:"h3"}}),A=new Pe({props:{code:"cGlwJTIwaW5zdGFsbCUyMG9ubnhydW50aW1l",highlighted:'pip <span class="hljs-keyword">install</span> onnxruntime',wrap:!1}}),X=new Pe({props:{code:"cGlwJTIwaW5zdGFsbCUyMG9ubnhydW50aW1lLWdwdQ==",highlighted:'pip <span class="hljs-keyword">install</span> onnxruntime-gpu',wrap:!1}}),J=new h({props:{title:"Hands-on guide",local:"hands-on-guide",headingTag:"h3"}}),B=new h({props:{title:"TensorRT",local:"tensorrt",headingTag:"h2"}}),Q=new h({props:{title:"Overview",local:"overview",headingTag:"h3"}}),K=new h({props:{title:"Setup guide",local:"setup-guide",headingTag:"h3"}}),Z=new Pe({props:{code:"cGlwJTIwaW5zdGFsbCUyMHRlbnNvcnJ0",highlighted:'pip <span class="hljs-keyword">install</span> tensorrt',wrap:!1}}),te=new h({props:{title:"Hands-on guide",local:"hands-on-guide",headingTag:"h3"}}),ne=new h({props:{title:"OpenVINO",local:"openvino",headingTag:"h2"}}),le=new h({props:{title:"Overview",local:"overview",headingTag:"h3"}}),se=new h({props:{title:"Setup guide",local:"setup-guide",headingTag:"h3"}}),pe=new Pe({props:{code:"cGlwJTIwaW5zdGFsbCUyMG9wZW52aW5v",highlighted:'pip <span class="hljs-keyword">install</span> openvino',wrap:!1}}),fe=new h({props:{title:"Hands-on guide",local:"hands-on-guide",headingTag:"h3"}}),de=new h({props:{title:"Optimum",local:"optimum",headingTag:"h2"}}),$e=new h({props:{title:"Overview",local:"overview",headingTag:"h3"}}),we=new h({props:{title:"Setup guide",local:"setup-guide",headingTag:"h3"}}),Te=new Pe({props:{code:"cGlwJTIwaW5zdGFsbCUyMG9wdGltdW0=",highlighted:'pip <span class="hljs-keyword">install</span> optimum',wrap:!1}}),be=new h({props:{title:"Hands-on guide",local:"hands-on-guide",headingTag:"h3"}}),ye=new h({props:{title:"EdgeTPU",local:"edgetpu",headingTag:"h2"}}),ke=new h({props:{title:"Overview",local:"overview",headingTag:"h3"}}),Oe=new Fi({props:{source:"https://github.com/johko/computer-vision-course/blob/main/chapters/en/unit9/tools_and_frameworks.mdx"}}),{c(){g=a("meta"),Ie=l(),_e=a("p"),Ne=l(),s(w.$$.fragment),Ue=l(),s(v.$$.fragment),Re=l(),s(T.$$.fragment),Fe=l(),c=a("p"),c.textContent=Dt,Ge=l(),s(b.$$.fragment),je=l(),x=a("p"),x.innerHTML=Kt,Se=l(),s(y.$$.fragment),qe=l(),s(k.$$.fragment),We=l(),M=a("p"),M.innerHTML=Yt,Ae=l(),s(C.$$.fragment),Ee=l(),s(z.$$.fragment),Xe=l(),H=a("p"),H.textContent=Zt,Je=l(),O=a("ol"),O.innerHTML=ei,Ve=l(),P=a("p"),P.innerHTML=ti,Be=l(),s(_.$$.fragment),Qe=l(),L=a("p"),L.textContent=ii,De=l(),s(I.$$.fragment),Ke=l(),s(N.$$.fragment),Ye=l(),U=a("p"),U.innerHTML=ni,Ze=l(),s(R.$$.fragment),et=l(),s(F.$$.fragment),tt=l(),G=a("p"),G.textContent=li,it=l(),j=a("ul"),j.innerHTML=oi,nt=l(),S=a("p"),S.innerHTML=ai,lt=l(),s(q.$$.fragment),ot=l(),W=a("p"),W.textContent=si,at=l(),s(A.$$.fragment),st=l(),E=a("p"),E.textContent=ri,rt=l(),s(X.$$.fragment),pt=l(),s(J.$$.fragment),mt=l(),V=a("p"),V.innerHTML=pi,ft=l(),s(B.$$.fragment),ut=l(),s(Q.$$.fragment),dt=l(),D=a("p"),D.textContent=mi,$t=l(),s(K.$$.fragment),ht=l(),Y=a("p"),Y.innerHTML=fi,gt=l(),s(Z.$$.fragment),wt=l(),ee=a("p"),ee.innerHTML=ui,vt=l(),s(te.$$.fragment),Tt=l(),ie=a("p"),ie.innerHTML=di,ct=l(),s(ne.$$.fragment),bt=l(),s(le.$$.fragment),xt=l(),oe=a("p"),oe.textContent=$i,yt=l(),ae=a("ul"),ae.innerHTML=hi,kt=l(),s(se.$$.fragment),Mt=l(),re=a("p"),re.innerHTML=gi,Ct=l(),s(pe.$$.fragment),zt=l(),me=a("p"),me.innerHTML=wi,Ht=l(),s(fe.$$.fragment),Ot=l(),ue=a("p"),ue.innerHTML=vi,Pt=l(),s(de.$$.fragment),_t=l(),s($e.$$.fragment),Lt=l(),he=a("p"),he.innerHTML=Ti,It=l(),ge=a("ol"),ge.innerHTML=ci,Nt=l(),s(we.$$.fragment),Ut=l(),ve=a("p"),ve.innerHTML=bi,Rt=l(),s(Te.$$.fragment),Ft=l(),ce=a("p"),ce.innerHTML=xi,Gt=l(),s(be.$$.fragment),jt=l(),xe=a("p"),xe.innerHTML=yi,St=l(),s(ye.$$.fragment),qt=l(),s(ke.$$.fragment),Wt=l(),Me=a("p"),Me.textContent=ki,At=l(),Ce=a("ul"),Ce.innerHTML=Mi,Et=l(),ze=a("p"),ze.innerHTML=Ci,Xt=l(),He=a("p"),He.innerHTML=zi,Jt=l(),s(Oe.$$.fragment),Vt=l(),Le=a("p"),this.h()},l(e){const t=Ui("svelte-u9bgzb",document.head);g=r(t,"META",{name:!0,content:!0}),t.forEach(i),Ie=o(e),_e=r(e,"P",{}),Hi(_e).forEach(i),Ne=o(e),p(w.$$.fragment,e),Ue=o(e),p(v.$$.fragment,e),Re=o(e),p(T.$$.fragment,e),Fe=o(e),c=r(e,"P",{"data-svelte-h":!0}),$(c)!=="svelte-fh85te"&&(c.textContent=Dt),Ge=o(e),p(b.$$.fragment,e),je=o(e),x=r(e,"P",{"data-svelte-h":!0}),$(x)!=="svelte-179jdom"&&(x.innerHTML=Kt),Se=o(e),p(y.$$.fragment,e),qe=o(e),p(k.$$.fragment,e),We=o(e),M=r(e,"P",{"data-svelte-h":!0}),$(M)!=="svelte-122v53o"&&(M.innerHTML=Yt),Ae=o(e),p(C.$$.fragment,e),Ee=o(e),p(z.$$.fragment,e),Xe=o(e),H=r(e,"P",{"data-svelte-h":!0}),$(H)!=="svelte-rw5ja7"&&(H.textContent=Zt),Je=o(e),O=r(e,"OL",{"data-svelte-h":!0}),$(O)!=="svelte-vdgwbj"&&(O.innerHTML=ei),Ve=o(e),P=r(e,"P",{"data-svelte-h":!0}),$(P)!=="svelte-197gxwz"&&(P.innerHTML=ti),Be=o(e),p(_.$$.fragment,e),Qe=o(e),L=r(e,"P",{"data-svelte-h":!0}),$(L)!=="svelte-1p9288j"&&(L.textContent=ii),De=o(e),p(I.$$.fragment,e),Ke=o(e),p(N.$$.fragment,e),Ye=o(e),U=r(e,"P",{"data-svelte-h":!0}),$(U)!=="svelte-r7lb1l"&&(U.innerHTML=ni),Ze=o(e),p(R.$$.fragment,e),et=o(e),p(F.$$.fragment,e),tt=o(e),G=r(e,"P",{"data-svelte-h":!0}),$(G)!=="svelte-126giqx"&&(G.textContent=li),it=o(e),j=r(e,"UL",{"data-svelte-h":!0}),$(j)!=="svelte-12bh83j"&&(j.innerHTML=oi),nt=o(e),S=r(e,"P",{"data-svelte-h":!0}),$(S)!=="svelte-v5aru9"&&(S.innerHTML=ai),lt=o(e),p(q.$$.fragment,e),ot=o(e),W=r(e,"P",{"data-svelte-h":!0}),$(W)!=="svelte-ey7nvx"&&(W.textContent=si),at=o(e),p(A.$$.fragment,e),st=o(e),E=r(e,"P",{"data-svelte-h":!0}),$(E)!=="svelte-1ktucuj"&&(E.textContent=ri),rt=o(e),p(X.$$.fragment,e),pt=o(e),p(J.$$.fragment,e),mt=o(e),V=r(e,"P",{"data-svelte-h":!0}),$(V)!=="svelte-zggqzh"&&(V.innerHTML=pi),ft=o(e),p(B.$$.fragment,e),ut=o(e),p(Q.$$.fragment,e),dt=o(e),D=r(e,"P",{"data-svelte-h":!0}),$(D)!=="svelte-17idhxm"&&(D.textContent=mi),$t=o(e),p(K.$$.fragment,e),ht=o(e),Y=r(e,"P",{"data-svelte-h":!0}),$(Y)!=="svelte-ap1fh1"&&(Y.innerHTML=fi),gt=o(e),p(Z.$$.fragment,e),wt=o(e),ee=r(e,"P",{"data-svelte-h":!0}),$(ee)!=="svelte-xkn92o"&&(ee.innerHTML=ui),vt=o(e),p(te.$$.fragment,e),Tt=o(e),ie=r(e,"P",{"data-svelte-h":!0}),$(ie)!=="svelte-jjdz45"&&(ie.innerHTML=di),ct=o(e),p(ne.$$.fragment,e),bt=o(e),p(le.$$.fragment,e),xt=o(e),oe=r(e,"P",{"data-svelte-h":!0}),$(oe)!=="svelte-mh4ae3"&&(oe.textContent=$i),yt=o(e),ae=r(e,"UL",{"data-svelte-h":!0}),$(ae)!=="svelte-gads39"&&(ae.innerHTML=hi),kt=o(e),p(se.$$.fragment,e),Mt=o(e),re=r(e,"P",{"data-svelte-h":!0}),$(re)!=="svelte-n0ajdp"&&(re.innerHTML=gi),Ct=o(e),p(pe.$$.fragment,e),zt=o(e),me=r(e,"P",{"data-svelte-h":!0}),$(me)!=="svelte-1udfge"&&(me.innerHTML=wi),Ht=o(e),p(fe.$$.fragment,e),Ot=o(e),ue=r(e,"P",{"data-svelte-h":!0}),$(ue)!=="svelte-804pg9"&&(ue.innerHTML=vi),Pt=o(e),p(de.$$.fragment,e),_t=o(e),p($e.$$.fragment,e),Lt=o(e),he=r(e,"P",{"data-svelte-h":!0}),$(he)!=="svelte-1i2e49n"&&(he.innerHTML=Ti),It=o(e),ge=r(e,"OL",{"data-svelte-h":!0}),$(ge)!=="svelte-14x2ukl"&&(ge.innerHTML=ci),Nt=o(e),p(we.$$.fragment,e),Ut=o(e),ve=r(e,"P",{"data-svelte-h":!0}),$(ve)!=="svelte-1ef21rr"&&(ve.innerHTML=bi),Rt=o(e),p(Te.$$.fragment,e),Ft=o(e),ce=r(e,"P",{"data-svelte-h":!0}),$(ce)!=="svelte-18xxmzz"&&(ce.innerHTML=xi),Gt=o(e),p(be.$$.fragment,e),jt=o(e),xe=r(e,"P",{"data-svelte-h":!0}),$(xe)!=="svelte-xo73i6"&&(xe.innerHTML=yi),St=o(e),p(ye.$$.fragment,e),qt=o(e),p(ke.$$.fragment,e),Wt=o(e),Me=r(e,"P",{"data-svelte-h":!0}),$(Me)!=="svelte-fnz1ur"&&(Me.textContent=ki),At=o(e),Ce=r(e,"UL",{"data-svelte-h":!0}),$(Ce)!=="svelte-1pwd1w8"&&(Ce.innerHTML=Mi),Et=o(e),ze=r(e,"P",{"data-svelte-h":!0}),$(ze)!=="svelte-1vsiith"&&(ze.innerHTML=Ci),Xt=o(e),He=r(e,"P",{"data-svelte-h":!0}),$(He)!=="svelte-h3cu64"&&(He.innerHTML=zi),Jt=o(e),p(Oe.$$.fragment,e),Vt=o(e),Le=r(e,"P",{}),Hi(Le).forEach(i),this.h()},h(){Oi(g,"name","hf:doc:metadata"),Oi(g,"content",ji)},m(e,t){Ri(document.head,g),n(e,Ie,t),n(e,_e,t),n(e,Ne,t),m(w,e,t),n(e,Ue,t),m(v,e,t),n(e,Re,t),m(T,e,t),n(e,Fe,t),n(e,c,t),n(e,Ge,t),m(b,e,t),n(e,je,t),n(e,x,t),n(e,Se,t),m(y,e,t),n(e,qe,t),m(k,e,t),n(e,We,t),n(e,M,t),n(e,Ae,t),m(C,e,t),n(e,Ee,t),m(z,e,t),n(e,Xe,t),n(e,H,t),n(e,Je,t),n(e,O,t),n(e,Ve,t),n(e,P,t),n(e,Be,t),m(_,e,t),n(e,Qe,t),n(e,L,t),n(e,De,t),m(I,e,t),n(e,Ke,t),m(N,e,t),n(e,Ye,t),n(e,U,t),n(e,Ze,t),m(R,e,t),n(e,et,t),m(F,e,t),n(e,tt,t),n(e,G,t),n(e,it,t),n(e,j,t),n(e,nt,t),n(e,S,t),n(e,lt,t),m(q,e,t),n(e,ot,t),n(e,W,t),n(e,at,t),m(A,e,t),n(e,st,t),n(e,E,t),n(e,rt,t),m(X,e,t),n(e,pt,t),m(J,e,t),n(e,mt,t),n(e,V,t),n(e,ft,t),m(B,e,t),n(e,ut,t),m(Q,e,t),n(e,dt,t),n(e,D,t),n(e,$t,t),m(K,e,t),n(e,ht,t),n(e,Y,t),n(e,gt,t),m(Z,e,t),n(e,wt,t),n(e,ee,t),n(e,vt,t),m(te,e,t),n(e,Tt,t),n(e,ie,t),n(e,ct,t),m(ne,e,t),n(e,bt,t),m(le,e,t),n(e,xt,t),n(e,oe,t),n(e,yt,t),n(e,ae,t),n(e,kt,t),m(se,e,t),n(e,Mt,t),n(e,re,t),n(e,Ct,t),m(pe,e,t),n(e,zt,t),n(e,me,t),n(e,Ht,t),m(fe,e,t),n(e,Ot,t),n(e,ue,t),n(e,Pt,t),m(de,e,t),n(e,_t,t),m($e,e,t),n(e,Lt,t),n(e,he,t),n(e,It,t),n(e,ge,t),n(e,Nt,t),m(we,e,t),n(e,Ut,t),n(e,ve,t),n(e,Rt,t),m(Te,e,t),n(e,Ft,t),n(e,ce,t),n(e,Gt,t),m(be,e,t),n(e,jt,t),n(e,xe,t),n(e,St,t),m(ye,e,t),n(e,qt,t),m(ke,e,t),n(e,Wt,t),n(e,Me,t),n(e,At,t),n(e,Ce,t),n(e,Et,t),n(e,ze,t),n(e,Xt,t),n(e,He,t),n(e,Jt,t),m(Oe,e,t),n(e,Vt,t),n(e,Le,t),Bt=!0},p:_i,i(e){Bt||(f(w.$$.fragment,e),f(v.$$.fragment,e),f(T.$$.fragment,e),f(b.$$.fragment,e),f(y.$$.fragment,e),f(k.$$.fragment,e),f(C.$$.fragment,e),f(z.$$.fragment,e),f(_.$$.fragment,e),f(I.$$.fragment,e),f(N.$$.fragment,e),f(R.$$.fragment,e),f(F.$$.fragment,e),f(q.$$.fragment,e),f(A.$$.fragment,e),f(X.$$.fragment,e),f(J.$$.fragment,e),f(B.$$.fragment,e),f(Q.$$.fragment,e),f(K.$$.fragment,e),f(Z.$$.fragment,e),f(te.$$.fragment,e),f(ne.$$.fragment,e),f(le.$$.fragment,e),f(se.$$.fragment,e),f(pe.$$.fragment,e),f(fe.$$.fragment,e),f(de.$$.fragment,e),f($e.$$.fragment,e),f(we.$$.fragment,e),f(Te.$$.fragment,e),f(be.$$.fragment,e),f(ye.$$.fragment,e),f(ke.$$.fragment,e),f(Oe.$$.fragment,e),Bt=!0)},o(e){u(w.$$.fragment,e),u(v.$$.fragment,e),u(T.$$.fragment,e),u(b.$$.fragment,e),u(y.$$.fragment,e),u(k.$$.fragment,e),u(C.$$.fragment,e),u(z.$$.fragment,e),u(_.$$.fragment,e),u(I.$$.fragment,e),u(N.$$.fragment,e),u(R.$$.fragment,e),u(F.$$.fragment,e),u(q.$$.fragment,e),u(A.$$.fragment,e),u(X.$$.fragment,e),u(J.$$.fragment,e),u(B.$$.fragment,e),u(Q.$$.fragment,e),u(K.$$.fragment,e),u(Z.$$.fragment,e),u(te.$$.fragment,e),u(ne.$$.fragment,e),u(le.$$.fragment,e),u(se.$$.fragment,e),u(pe.$$.fragment,e),u(fe.$$.fragment,e),u(de.$$.fragment,e),u($e.$$.fragment,e),u(we.$$.fragment,e),u(Te.$$.fragment,e),u(be.$$.fragment,e),u(ye.$$.fragment,e),u(ke.$$.fragment,e),u(Oe.$$.fragment,e),Bt=!1},d(e){e&&(i(Ie),i(_e),i(Ne),i(Ue),i(Re),i(Fe),i(c),i(Ge),i(je),i(x),i(Se),i(qe),i(We),i(M),i(Ae),i(Ee),i(Xe),i(H),i(Je),i(O),i(Ve),i(P),i(Be),i(Qe),i(L),i(De),i(Ke),i(Ye),i(U),i(Ze),i(et),i(tt),i(G),i(it),i(j),i(nt),i(S),i(lt),i(ot),i(W),i(at),i(st),i(E),i(rt),i(pt),i(mt),i(V),i(ft),i(ut),i(dt),i(D),i($t),i(ht),i(Y),i(gt),i(wt),i(ee),i(vt),i(Tt),i(ie),i(ct),i(bt),i(xt),i(oe),i(yt),i(ae),i(kt),i(Mt),i(re),i(Ct),i(zt),i(me),i(Ht),i(Ot),i(ue),i(Pt),i(_t),i(Lt),i(he),i(It),i(ge),i(Nt),i(Ut),i(ve),i(Rt),i(Ft),i(ce),i(Gt),i(jt),i(xe),i(St),i(qt),i(Wt),i(Me),i(At),i(Ce),i(Et),i(ze),i(Xt),i(He),i(Jt),i(Vt),i(Le)),i(g),d(w,e),d(v,e),d(T,e),d(b,e),d(y,e),d(k,e),d(C,e),d(z,e),d(_,e),d(I,e),d(N,e),d(R,e),d(F,e),d(q,e),d(A,e),d(X,e),d(J,e),d(B,e),d(Q,e),d(K,e),d(Z,e),d(te,e),d(ne,e),d(le,e),d(se,e),d(pe,e),d(fe,e),d(de,e),d($e,e),d(we,e),d(Te,e),d(be,e),d(ye,e),d(ke,e),d(Oe,e)}}}const ji='{"title":"Model optimization tools and frameworks","local":"model-optimization-tools-and-frameworks","sections":[{"title":"Tensorflow Model optimization Toolkit (TMO)","local":"tensorflow-model-optimization-toolkit-tmo","sections":[{"title":"Overview","local":"overview","sections":[],"depth":3},{"title":"Setup guide","local":"setup-guide","sections":[],"depth":3},{"title":"Hands-on guide","local":"hands-on-guide","sections":[],"depth":3}],"depth":2},{"title":"PyTorch Quantization","local":"pytorch-quantization","sections":[{"title":"Overview","local":"overview","sections":[],"depth":3},{"title":"Setup guide","local":"setup-guide","sections":[],"depth":3}],"depth":2},{"title":"Hands-on guide","local":"hands-on-guide","sections":[],"depth":2},{"title":"ONNX Runtime","local":"onnx-runtime","sections":[{"title":"Overview","local":"overview","sections":[],"depth":3},{"title":"Setup guide","local":"setup-guide","sections":[],"depth":3},{"title":"Hands-on guide","local":"hands-on-guide","sections":[],"depth":3}],"depth":2},{"title":"TensorRT","local":"tensorrt","sections":[{"title":"Overview","local":"overview","sections":[],"depth":3},{"title":"Setup guide","local":"setup-guide","sections":[],"depth":3},{"title":"Hands-on guide","local":"hands-on-guide","sections":[],"depth":3}],"depth":2},{"title":"OpenVINO","local":"openvino","sections":[{"title":"Overview","local":"overview","sections":[],"depth":3},{"title":"Setup guide","local":"setup-guide","sections":[],"depth":3},{"title":"Hands-on guide","local":"hands-on-guide","sections":[],"depth":3}],"depth":2},{"title":"Optimum","local":"optimum","sections":[{"title":"Overview","local":"overview","sections":[],"depth":3},{"title":"Setup guide","local":"setup-guide","sections":[],"depth":3},{"title":"Hands-on guide","local":"hands-on-guide","sections":[],"depth":3}],"depth":2},{"title":"EdgeTPU","local":"edgetpu","sections":[{"title":"Overview","local":"overview","sections":[],"depth":3}],"depth":2}],"depth":1}';function Si(Qt){return Li(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Xi extends Ii{constructor(g){super(),Ni(this,g,Si,Gi,Pi,{})}}export{Xi as component};
