安裝tf向apple coreml模型轉換包tfcoreml
基於蘋果本身的轉換工具coremltools進行封裝python
爲了將訓練的模型轉換到apple中使用,須要將模型轉換爲ios支持的mlmodel
形式。目前蘋果官方的推薦使用Core ML tools來進行轉換。
它支持ios
Scikit Learn LIBSVM Caffe Keras XGBoost. Tensorflow MXNet
等工具包的模型轉換。
但爲了更方便的使用tensorflow的模型,在github中找到了tfcoreml的封裝,直接對tensorflow的pb模型進行轉換。git
首選須要安裝tfcoreml的依賴:github
tensorflow >= 1.5.0 coremltools >= 0.8 numpy >= 1.6.2 protobuf >= 3.1.0 six >= 1.10.0
在安裝CoreMLtools時會遇到如下問題:web
pip install coremltools
會報錯:ERROR: Could not find a version that satisfies the requirement coremltools
爲了在這臺win上安裝coremltools,只能選擇從源碼編譯安裝了,在release中找到合適的版本:
cd coremltools-2.1
這裏能夠看到setup.cfg:python3.x
[bdist_wheel] plat-name=any python-tag=2.7 #這裏將2.7改成目前平臺的python版本3.5
隨後運行wheel安裝:
python setup.py install
便可編譯安裝coremltools。
app
隨後便可pip安裝tfcoreml
pip install -U tfcoreml
python2.7
這一封裝選擇了pb(protobuf )模型,若是輸入輸出肯定的狀況下能夠直接轉換:svg
import tfcoreml as tf_converter tf_converter.convert(tf_model_path = 'path/to/your_tf_model.pb', mlmodel_path = 'path/to/your_apple_model.mlmodel', output_feature_names = ['softmax:0'])
若是須要指定輸入大小的話,能夠利用input_name_shape_dict
關鍵字:工具
import tfcoreml as tf_converter tf_converter.convert(tf_model_path = 'path/to/your_tf_model.pb', mlmodel_path = 'path/to/your_apple_model.mlmodel', output_feature_names = ['softmax:0'], input_name_shape_dict = {'your_input:0' : [1, 227, 227, 3]})
ref:
https://stackoverflow.com/questions/44510701/no-matching-distribution-found-for-coremltools
https://stackoverflow.com/questions/44612991/error-installing-coremltools
https://github.com/apple/coremltools/issues/228
ssd_demo:https://github.com/vonholst/SSDMobileNet_CoreML/tree/master/SSDMobileNet/SSDMobileNet
coreml:https://developer.apple.com/documentation/coreml