附件C-如何復(fù)用(Reuse)第三方介面模型-by 神櫻團隊-ok8_第1頁
附件C-如何復(fù)用(Reuse)第三方介面模型-by 神櫻團隊-ok8_第2頁
附件C-如何復(fù)用(Reuse)第三方介面模型-by 神櫻團隊-ok8_第3頁
附件C-如何復(fù)用(Reuse)第三方介面模型-by 神櫻團隊-ok8_第4頁
附件C-如何復(fù)用(Reuse)第三方介面模型-by 神櫻團隊-ok8_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

附件A---介面模型的開發(fā)流程1如何復(fù)用(Reuse)第三方的介面模型大家已經(jīng)很熟悉如何復(fù)用(Reuse)第三方的預(yù)訓(xùn)練 (Pre-trained)<主模型>了。例如,鼎鼎大名的ResNet50圖像識別模型等。接著,我們就進一步來看看如何遷移(Transfer)第三方的的預(yù)訓(xùn)練模型,來開發(fā)出自己適用的<介面模型>。本範(fàn)例裡,我們將基於第三方套件OpenCV提供的超高解析度(Super-resolution)插值(Imputation)預(yù)訓(xùn)練模型:來開發(fā)出自己的優(yōu)質(zhì)介面模型。2神櫻AI團隊C.1基於第三方套件:OpenCVC.1.1OpenCV的超高解析度插值預(yù)訓(xùn)練模型OpenCV的超高解析度預(yù)訓(xùn)練模型,例如:Context上下文考慮進去。深度學(xué)習(xí)以及最近的GAN在這裡提供了幫附件A---介面模型的開發(fā)流程3象。如果改用FSRCNN插值模型,其好很多了。如下:OpenCVAI深度學(xué)習(xí)模型,可以在放大圖像時,進的插值。包括:4神櫻AI團隊其中的FSRCNN部分,又包含一系列的預(yù)訓(xùn)練模型,都是基於b礎(chǔ),進一步開發(fā)出自己適用的介面模型。C.1.2下載FSRCNN_x3.pb首先,下載它,存於c:/pb/文件夾裡:附件A---介面模型的開發(fā)流程5FSRCNNxpb的插值。C.2使用OpenVINO進行優(yōu)化,生成IR檔案優(yōu)化的動作。6神櫻AI團隊完成,會輸出IR檔案。這裡所謂的IR檔案,就包括了這3個檔案:一個簡單程式檢測一下。程式碼如下:#ccc_001_sr.pyimportnumpyasnpfromopenvino.inference_engineimportIENetwork,IECoreportcvfromtorchvisionimporttransformsfromPILimportImageie=IECore()model_xml="C:\\pb\\FSRCNN_x3.xml"model_bin="C:\\pb\\FSRCNN_x3.bin"net=ie.read_network(model=model_xml,weights=model_bin)supportedlayersiequerynetworknetworknetdevice_name="CPU")print("\n\nIRsuccessfullyloadedintoInferenceEngine.\n")附件A---介面模型的開發(fā)流程7End此程式時,輸出:這表示能順利使用這個預(yù)訓(xùn)練模型了。C.3活用FCRCNN預(yù)訓(xùn)練模型C.3.1情境(一):將灰階圖像放大3倍是,在許多情境都需要它來幫忙。例如,8神櫻AI團隊C.3.2情境(二):將灰L*a*b圖像放大3倍FSRCNN供更優(yōu)質(zhì)的圖像放大插值效果。於多情境都需要它來幫忙。例如,於是,使用OpenVINOToolkit進行優(yōu)化完成,並匯出了IR檔案。附件A---介面模型的開發(fā)流程9A.2.3P店進入推理(Inference)運行階段就進入Excel範(fàn)例的<表3>畫面,如下:目前已經(jīng)建產(chǎn)出這模型的IR檔案了。就繼續(xù)撰寫P店的應(yīng)用程式##aaa_002_app1.pyimportnumpyasnpporttorchorchnnasnnfromopenvino.inference_engineimportIENetwork,IECoreU110神櫻AI團隊#======RabbitBinary主模型IR======================ie=IECore()model_xml="C:/ox_vino_IR/Rabbit/RabbitBinary.xml"inarybinnet=ie.read_network(model=model_xml,weights=model_bin)knetworknetdevicenameIEDEVICEEprint("\nIRsuccessfullyloadedintoInferenceEngine.")InputLayer=next(iter(InputInfoPtr))OpenVinoExecutable=ie.load_network(network=net,推理(Inference)------------------defgo3():print("\n針對第5隻寵物,資料格式為:[1,2]")TX=np.array([[8.8,1.7]],dtype=np.float32)orchfromnumpyTXtx/=10#返回一個listres=OpenVinoExecutable.infer(inputs={InputLayer:tx})#print(res)z=res['7']#print(z.shape)附件A---介面模型的開發(fā)流程11printprint("輸入給主模型,預(yù)測結(jié)果:",np.round(z))print("\n預(yù)測值接近0,歸類為兔子")go3()End這支P店的<兔貓分類模型>準(zhǔn)確預(yù)測出來了。把這支App包裝到xcel12神櫻AI團隊當(dāng)您按下<預(yù)測>,就輸出運行結(jié)果了。此時,神櫻團隊已經(jīng)順利開發(fā)出P店使用的App了。A.3Q店想復(fù)用(Reuse)這個模型A.3.1神櫻團隊就來設(shè)計一個Adapter模型附件A---介面模型的開發(fā)流程13神櫻團隊來到Q店,看到了Q店並沒有兔貓寵物的特徵數(shù)據(jù)。Q店個AdapterRGB介面模型。其程式碼如下:##aaa_003_RGB.pyimportnumpyasnpporttorchorchnnasnnfromopenvino.inference_engineimportIENetwork,IECoreU114神櫻AI團隊#======RabbitBinary主模型IR======================ie=IECore()model_xml="C:/ox_vino_IR/Rabbit/RabbitBinary.xml"inarybinnet=ie.read_network(model=model_xml,weights=model_bin)knetworknetdevicenameIEDEVICEICEprint("\nIRsuccessfullyloadedintoInferenceEngine.")InputLayer=next(iter(InputInfoPtr))OpenVinoExecutable=ie.load_network(network=net,#======定義Adapter_RGB模型======================selflayer=nn.Conv2d(1,2,3,3)defforward(self,x):x=x.view(1,1,1,3)附件附件A---介面模型的開發(fā)流程15x=x.view(1,2)layerWB------------------w1=np.zeros((2,1,1,3),dtype=np.float32)w1[0,0,0,0]=1.0w1[1,0,0,2]=1.0wtorchfromnumpyw)b1=np.array([0.0,0.0],dtype=np.float32)fromnumpybTestingdata---------------------------------#使用Numpy陣列(array)X_RGB=np.array([[255,0,0],#兔--紅色[0,0,255],#貓--藍色[255,0,0],[0,0,255]],dtype=np.float32)#轉(zhuǎn)換成為Tensor16神櫻AI團隊nforiinrange:squeezeax=ax.detach().numpy()#返回一個listres=OpenVinoExecutable.infer(inputs={InputLayer:ax})#print(res)z=res['7']#print(z.shape)----Savedto*.ONNX----------------------path='c:/ox_vino_IR/Rabbit/AdapterRGB.onnx'inputpath,opset_version=11)print("\n---Savedto"+path)End這程式包含了AdapterRGB介面模型。接著,執(zhí)行它,進行測試,下:附件A---介面模型的開發(fā)流程17同時,也匯出了*.onnx模型檔案。A.3.2使用OpenVINO進行優(yōu)化,生成IR檔案openvino21.4.582版本來進行優(yōu)化,使用命令:pythonmoonnxpyinputmodel“C:\\ox\\AdapterRGB.onnx”--output_dir“C:\\ox\\”--input_shape[1,3]OpenVINOToolkit行優(yōu)化完成,並匯出了IR檔案。A.3.3Q店進入推理(Inference)運行階段就進入Excel範(fàn)例的<表5>畫面,如下:18神櫻AI團隊目前已經(jīng)建產(chǎn)出AdapterRGB介面模型的IR檔案了。就繼續(xù)撰寫Q店的應(yīng)用程式(App),來引導(dǎo)推理(Inference)的任務(wù)。其開源範(fàn)例程式碼:##aaa_004_app2.pyimportnumpyasnpporttorchorchnnasnnfromopenvino.inference_engineimportIENetwork,IECoreU#======RabbitBinary主模型IR======================ie=IECore()model_xml="C:/ox_vino_IR/Rabbit/RabbitBinary.xml"附件附件A---介面模型的開發(fā)流程19inarybinnet=ie.read_network(model=model_xml,weights=model_bin)knetworknetdevicenameIEDEVICEEprint("\nIRsuccessfullyloadedintoInferenceEngine.")InputLayer=next(iter(InputInfoPtr))OpenVinoExecutable=ie.load_network(network=net,AdapterRGBIR-------------ie2=IECore()model_xml="C:/ox_vino_IR/Rabbit/AdapterRGB.xml"delbinCoxvinoIRRabbitAdapterRGBbinnet2=ie2.read_network(model=model_xml,weights=model_bin)supported_layers_2=ie2.query_network(network=net2,#print("IR2successfullyloadedintoInferenceEngine.")utinfoInputLayer_2=next(iter(InputInfoPtr_2))OpenVinoExecutable2=ie2.load_network(network=net2,20神櫻AI團隊Testingdata---------------------------------#使用Numpy陣列(array)defgo6():print("\n寵物資料格式為:[1,3]")rgb_x=np.array([[255,6,1]],dtype=np.float32)rgbxtorchfromnumpy(rgb_x)rgb_x/=255res=OpenVinoExecutable2.infer(inputs={InputLayer_2:rgb_x})#print(res)bxres['7']xres=OpenVinoExecutable.infer(inputs={InputLayer:bx})#print(res)z=res['7']#print(z.shape)print("\n預(yù)測值接近0,歸類為兔子")-go6()End這程式,輸出如下:附件A---介面模型的開發(fā)流程21這支Q店的<兔貓分類模型>準(zhǔn)確預(yù)測出來了。把這支App包裝到xcel當(dāng)您按下<預(yù)測>,就輸出運行結(jié)果了。此時,神櫻團隊已經(jīng)順利開發(fā)出Q店使用的App了。22神櫻AI團隊A.4R店想復(fù)用(Reuse)這個模型A.4.1神櫻團隊就來設(shè)計一個Adapter模型此時,神櫻團隊就設(shè)計一個AdapterImage介面型。其程式碼如下:##aaa_005_Image.py附件附件A---介面模型的開發(fā)流程23importnumpyasnpporttorchimporttorch.nnasnnfromtorchvisionimporttransformsfromopenvino.inference_engineimportIENetwork,IECorefromPILimportImageU#======RabbitBinary主模型IR======================ie=IECore()model_xml="C:/ox_vino_IR/Rabbit/RabbitBinary.xml"inarybinnet=ie.read_network(model=model_xml,weights=model_bin)knetworknetdevicenameIEDEVICEEprint("\nIRsuccessfullyloadedintoInferenceEngine.")InputLayer=next(iter(InputInfoPtr))OpenVinoExecutable=ie.load_network(network=net,AdapterRGBIR-------------ie2=IECore()224神櫻AI團隊model_xml="C:/ox_vino_IR/Rabbit/AdapterRGB.xml"delbinCoxvinoIRRabbitAdapterRGBbinnet2=ie2.read_network(model=model_xml,weights=model_bin)supported_layers_2=ie2.query_network(network=net2,#print("IR2successfullyloadedintoInferenceEngine.")utinfoInputLayer_2=next(iter(InputInfoPtr_2))OpenVinoExecutable2=ie2.load_network(network=net2,#==========定義Adapter_Image模型====================self.conv1=nn.Conv2d(3,1,1,1)self.conv2=nn.Conv2d(3,1,1,1)self.conv3=nn.Conv2d(3,1,1,1)self.layer_1=nn.Conv2d(1,1,32,32)defforward(self,x):x=x.view(1,3,32,32)r=self.conv1(x)附件附件A---介面模型的開發(fā)流程25g=self.conv2(x)b=self.conv3(x)rgbtorchcatrzgzbzrgb=rgb.view(1,3)#----設(shè)定conv1的W&B----w=np.zeros((1,3,1,1),dtype=np.float32)w[0,0,0,0]=1.0w[0,1,0,0]=0.0w[0,2,0,0]=0.0omnumpywterwb=np.array([0.0],dtype=np.float32)terb#----設(shè)定conv2的W&B----w=np.zeros((1,3,1,1),dtype=np.float32)w[0,0,0,0]=0.0w[0,1,0,0]=1.0w[0,2,0,0]=0.0226神櫻AI團隊omnumpywterwb=np.array([0.0],dtype=np.float32)arameterb#----設(shè)定conv3的W&B----w=np.zeros((1,3,1,1),dtype=np.float32)w[0,0,0,0]=0.0w[0,1,0,0]=0.0w[0,2,0,0]=1.0omnumpywterwb=np.array([0.0],dtype=np.float32)terb#----設(shè)定layer_1的W&B----w=np.zeros((1,1,32,32),dtype=np.float32)w[0,0,5,5]=1.0omnumpywb=np.array([0.0],dtype=np.float32)附件附件A---介面模型的開發(fā)流程27Testingdata---------------------------------#把圖片轉(zhuǎn)換成Tensortransform=transforms.Compose([transformsResize2)),transforms.ToTensor()imageName='c:/ox_vino_IR/Rabbit/train/Rabbit001.jpg'im=Image.open(imageName).convert('RGB')im=transform(im)#print(im.shape)imageName='c:/ox_vino_IR/Rabbit/train/Cat001.jpg'im=Image.open(imageName).convert('RGB')im=transform(im)imageName='c:/ox_vino_IR/Rabbit/train/Rabbit002.jpg'im=Image.open(imageName).convert('RGB')im=transform(im)imageName='c:/ox_vino_IR/Rabbit/train/Cat002.jpg'im=Image.open(imageName).convert('RGB')im=transform(im)228神櫻AI團隊nforiinrange:apterimageimxrgb_x=rgb_x.detach().numpy()res=OpenVinoExecutable2.infer(inputs={InputLayer_2:rgb_x})#print(res)bxres['7']xres=OpenVinoExecutable.infer(inputs={InputLayer:bx})#print(res)z=res['7']#print(z.shape)----Savedto*.ONNX----------------------path='c:/ox_vino_IR/Rabbit/AdapterImage.onnx'lyinputtorchrandnmyinputpath,opset_version=11)print("\n---Savedto"+path)End附件A---介面模型的開發(fā)流程29這程式包含了AdapterImage介面模型。接著,執(zhí)行它,進行測出如下:同時,也匯出了AdapterImage.onnx模型檔案。A.4.2使用OpenVINO進行優(yōu)化,生成IR檔案openvino21.4.582版本來進行優(yōu)化,使用命令:pythonmoonnxpy--input_model“C:\\ox\\AdapterIamge.onnx”--output_dir“C:\\ox\\”--input_shape[3,32,32]OpenVINOToolkit行優(yōu)化完成,並匯出了IR檔案。A.4.3R店進入推理(Inference)運行階段30神櫻AI團隊就進入Excel範(fàn)例的<表7>畫面,如下:店的應(yīng)用程式(App),來引導(dǎo)推理(Inference)的任務(wù)。其開源範(fàn)例程式碼:##aaa_006_app3.pyimportnumpyasnpporttorchorchnnasnnfromtorchvisionimporttransformsfromopenvino.inference_engineimportIENetwork,IECore附件附件A---介面模型的開發(fā)流程31fromPILimportImageU#======RabbitBinary主模型IR======================ie=IECore()model_xml="C:/ox_vino_IR/Rabbit/RabbitBinary.xml"inarybinnet=ie.read_network(model=model_xml,weights=model_bin)networknetworknetdevicenameIEDEVICEEprint("\nIRsuccessfullyloadedintoInferenceEngine.")InputLayer=next(iter(InputInfoPtr))OpenVinoExecutable=ie.load_network(network=net,AdapterRGBIR-------------ie2=IECore()model_xml="C:/ox_vino_IR/Rabbit/AdapterRGB.xml"delbinCoxvinoIRRabbitAdapterRGBbinnet2=ie2.read_network(model=model_xml,weights=model_bin)332神櫻AI團隊supported_layers_2=ie2.query_network(network=net2,print("IR2successfullyloadedintoInferenceEngine.")utinfoInputLayer_2=next(iter(InputInfoPtr_2))OpenVinoExecutable2=ie2.load_network(network=net2,AdapterImageIR--------------------------ie3=IECore()model_xml="C:/ox_vino_IR/Rabbit/AdapterImage.xml"modelbinC:/ox_vino_IR/Rabbit/AdapterImage.bin"net3=ie3.read_network(model=model_xml,weights=model_bin)supported_layers_3=ie3.query_network(network=net3,print("IR3successfullyloadedintoInferenceEngine.")etinputinfoInputLaye

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論