在ios上部署自己的深度學習模型

放心加上cuda 0 也沒關係,代碼中自動檢測是否有顯卡,沒有自動換成cpu.

保存爲onnx後你需要轉換成coreML

去年一個師兄畢業,在手機上做了一個app,分圖像中的狗和貓。早上沒什麼事,就想着在ios上玩玩風格遷移。

由於疫情原因,手裏沒機器就去下載了一個,我用的是這個https://github.com/pytorch/examples/tree/master/fast_neural_style

他的模型裏面保存的是參數,而且是pth,ios上得用coreML,所以得用Open Neural Network Exchange(ONNX)轉換一下。

當然也不用你自己轉換,上面的包中有onnx


python ./neural_style/neural_style.py eval  \
--content-image ./images/original.jpg \
--output-image ./stylized-test.jpg \
--model ./saved_model/candy.pth \
--cuda 0 \
--export_onnx ./candy.onnx 

然後將onnx轉換成coreML

# onnx2coreML.py

import sys
from onnx import onnx_pb
from onnx_coreml import convert

model_in = sys.argv[1]
model_out = sys.argv[2]

model_file = open(model_in, 'rb')
model_proto = onnx_pb.ModelProto()
model_proto.ParseFromString(model_file.read())
coreml_model = convert(model_proto, image_input_names=['inputImage'], image_output_names=['outputImage'])
coreml_model.save(model_out)

python onnx2coreML.py candy.onnx candy.mlmodel   

到這裏就有了可以在ios上運行的模型了。

無奈不會swift所以上網找了一個https://github.com/onnx/tutorials

發現https://github.com/onnx/tutorials/tree/master/examples/CoreML/ONNXLive裏面什麼都有。。。。。直接往ios部署就好。。。。

 

總的來說,onnx裏面都有,只要你部署下就能出去裝X了,醉醉的。。。。。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章