使用ResNet50預置算法訓練美食分類模型-優化建議
884
2022-05-30
編寫推理配置文件
參考該幫助文檔。
config.json是推理配置文件,文件是json格式,用于設置推理過程中的環境信息。比如推理環境Python包依賴安裝、使用的AI引擎、使用的python版本、以及模型API的輸入和輸出等。
字段解讀
樣例解讀
模型輸入是一張圖片;輸出是預測結果,以json格式返回。
模型輸入格式示例:
key:images
value:圖片文件
模型輸出格式示例:
{ ????"detection_classes":?[ ????????"face", ????????"arm" ????], ????"detection_boxes":?[ ????????[ ????????????33.6, ????????????42.6, ????????????104.5, ????????????203.4 ????????], ????????[ ????????????103.1, ????????????92.8, ????????????765.6, ????????????945.7 ????????] ????], ????"detection_scores":?[0.99,?0.73] }
推理配置文件:
{ ????"model_type":?"TensorFlow", ????"model_algorithm":?"object_detection", ????"runtime":?"tf2.1-python3.7", ????"apis":?[{ ????????"protocol":?"https",? ????????"url":?"/", ????????"method":?"post", ????????"request":?{ ????????????"Content-type":?"multipart/form-data", ????????????"data":?{ ????????????????"type":?"object", ????????????????"properties":?{ ????????????????????"images":?{ ????????????????????????"type":?"file" ????????????????????} ????????????????} ????????????} ????????}, ????????"response":?{ ????????????"Content-type":?"multipart/form-data", ????????????"data":?{ ????????????????"type":?"object", ????????????????"properties":?{ ????????????????????"detection_classes":?{ ????????????????????????"type":?"array", ????????????????????????"items":?[{ ????????????????????????????"type":?"string" ????????????????????????}] ????????????????????}, ????????????????????"detection_boxes":?{ ????????????????????????"type":?"array", ????????????????????????"items":?[{ ????????????????????????????"type":?"array",? ????????????????????????????"minItems":?4, ????????????????????????????"maxItems":?4, ????????????????????????????"items":?[{ ????????????????????????????????"type":?"number" ????????????????????????????}] ????????????????????????}] ????????????????????}, ????????????????????"detection_scores":?{ ????????????????????????"type":?"array", ????????????????????????"items":?[{ ????????????????????????????"type":?"number" ????????????????????????}] ????????????????????} ????????????????} ????????????} ????????} ????}], ????"dependencies":?[{ ????????"installer":?"pip", ????????"packages":?[{ ????????????????"restraint":?"EXACT", ????????????????"package_version":?"1.15.0", ????????????????"package_name":?"numpy" ????????????}, ????????????{ ????????????????"restraint":?"EXACT", ????????????????"package_version":?"3.4.1.15", ????????????????"package_name":?"opencv-python-headless" ????????????}, ????????????{ ????????????????"restraint":?"EXACT", ????????????????"package_version":?"5.2.0", ????????????????"package_name":?"Pillow" ????????????} ????????] ????}] }
配置文件解讀:
model_type是TensorFlow,表示推理環境中安裝的AI引擎是TensorFlow。
runtime字段是tf2.1-python3.7,表示推理環境中安裝的TensorFlow版本是2.1,python版本是3.6。
apis字段定義了請求API的協議是HTTPS,通過post請求接受和返回信息。
request(接受)中設置了請求接受數據的content-type是form-data,會將API接受到的數據按照表單的形式存儲,在Python中可以通過字典的格式讀取。并且,會將接受的圖片按照file類型傳入到推理代碼。
response(返回)中將返回數據的content-type同樣設置為form-data。其中的data表示請求返回的數據。在該樣例中,返回的數據屬性有三個,分別是detection_classes(檢測到的類別)、detection_boxes(檢測到的檢測框)和detection_scores(類別的置信度)。推理代碼需要將推理結果寫入到這三個變量,并作為結果返回(參考模型輸出格式示例)。items中的type表示數組中元素的類型,minItems和maxItems分別表示數組中最小和最大元素數。
dependencies,表示在推理環境中安裝三個Python依賴包,并指定了包的版本。
復用指導
對于一個目標檢測模型,可以復用上面這個推理配置文件,但是需要做如下微調。對于apis,可以直接復用;對于dependencies,需要根據自己的推理代碼,修改其中的package_name和package_version;對于model_type和runtime,根據代碼中實際使用的AI框架和Python版本填寫。model_algorithm,自定義一個字符串即可。
模型輸入是一張圖片;輸出是預測結果,以json格式返回。
模型輸入格式示例:
key:images
value:圖片文件
模型輸出格式示例:
{ ????"predicted_label":?"rose", ????"scores":?[ ???????["rose",?0.99], ???????["daisy",?0.01] ????] }
推理配置文件:
{ ????"model_type":?"TensorFlow", ????"model_algorithm":?"image_classification", ????"runtime":?"tf1.13-python3.6-gpu", ????"apis":?[{ ????????"protocol":?"https", ????????"url":?"/", ????????"method":?"post", ????????"request":?{ ????????????"Content-type":?"multipart/form-data", ????????????"data":?{ ????????????????"type":?"object", ????????????????"properties":?{ ????????????????????"images":?{ ????????????????????????"type":?"file" ????????????????????} ????????????????} ????????????} ????????}, ????????"response":?{ ????????????"Content-type":?"multipart/form-data", ????????????"data":?{ ????????????????"type":?"object", ????????????????"properties":?{ ????????????????????"predicted_label":?{ ????????????????????????"type":?"string" ????????????????????}, ????????????????????"scores":?{ ????????????????????????"type":?"array", ????????????????????????"items":?[{ ????????????????????????????"type":?"array", ????????????????????????????"minItems":?2, ????????????????????????????"maxItems":?2, ????????????????????????????"items":?[ ????????????????????????????????{ ????????????????????????????????????"type":?"string" ????????????????????????????????}, ????????????????????????????????{ ????????????????????????????????????"type":?"number" ????????????????????????????????} ????????????????????????????] ????????????????????????}] ????????????????????} ????????????????} ????????????} ????????} ????}], ????"dependencies":?[{ ????????"installer":?"pip", ????????"packages":?[{ ????????????????"restraint":?"ATLEAST", ????????????????"package_version":?"1.15.0", ????????????????"package_name":?"numpy" ????????????}, ????????????{ ????????????????"restraint":?"EXACT", ????????????????"package_version":?"3.4.1.15", ????????????????"package_name":?"opencv-python-headless" ????????????}, ????????????{ ????????????????"restraint":?"", ????????????????"package_version":?"", ????????????????"package_name":?"Pillow" ????????????} ????????] ????}] }
配置文件解讀:
其他字段的解讀和樣例一相同。圖像分類和目標檢測的返回結果格式不同。response中的data包含兩個屬性,分別是predicted_label(預測的類別)和scores(預測結果的概率分布)。
復用指導:
對于一個圖像分類模型,可以復用上面的推理配置文件。復用指導同樣例一。
這是一個結構化數據的預測示例,基于sklearn引擎,使用的是傳統機器學習算法。
模型輸入格式示例
輸入的數據是特征列及其數值
{ ????"data":?{ ????????"req_data":?[ ????????????{ ????????????????"buying_price":?"high", ????????????????"maint_price":?"high", ????????????????"doors":?"2", ????????????????"persons":?"2", ????????????????"lug_boot":?"small", ????????????????"safety":?"low", ????????????????"acceptability":?"acc" ????????????} ????????] ????} }
模型輸出格式示例
輸出的數據是標簽列的預測結果
{ ????"data":?{ ????????"resp_data":?[ ????????????{ ????????????????"predict_result":?"unacc" ????????????} ????????] ????} }
配置文件
{ ????"model_type":?"Scikit_Learn", ????"model_algorithm":?"predict_analysis", ????"runtime":?"python3.6", ????"apis":?[ ????????{ ????????????"protocol":?"https", ????????????"url":?"/", ????????????"method":?"post", ????????????"request":?{ ????????????????"Content-type":?"application/json", ????????????????"data":?{ ????????????????????"type":?"object", ????????????????????"properties":?{ ????????????????????????"data":?{ ????????????????????????????"type":?"object", ????????????????????????????"properties":?{ ????????????????????????????????"req_data":?{ ????????????????????????????????????"items":?[ ????????????????????????????????????????{ ????????????????????????????????????????????"type":?"object", ????????????????????????????????????????????"properties":?{} ????????????????????????????????????????}], ????????????????????????????????????"type":?"array" ????????????????????????????????} ????????????????????????????} ????????????????????????} ????????????????????} ????????????????} ????????????}, ????????????"response":?{ ????????????????"Content-type":?"multipart/form-data", ????????????????"data":?{ ????????????????????"type":?"object", ????????????????????"properties":?{ ????????????????????????"data":?{ ????????????????????????????"type":?"object", ????????????????????????????"properties":?{ ????????????????????????????????"resp_data":?{ ????????????????????????????????????"type":?"array", ????????????????????????????????????"items":?[ ????????????????????????????????????????{ ????????????????????????????????????????????"type":?"object", ????????????????????????????????????????????"properties":?{} ????????????????????????????????????????}] ????????????????????????????????} ????????????????????????????} ????????????????????????} ????????????????????} ????????????????} ????????????} ????????}], ????"dependencies":?[ ????????{ ????????????"installer":?"pip", ????????????"packages":?[ ????????????????{ ????????????????????"restraint":?"EXACT", ????????????????????"package_version":?"1.15.0", ????????????????????"package_name":?"numpy" ????????????????}, ????????????????{ ????????????????????"restraint":?"EXACT", ????????????????????"package_version":?"5.2.0", ????????????????????"package_name":?"Pillow" ????????????????}] ????????}] }
配置文件解讀
model_type是Scikit_Learn,表示推理環境中安裝的AI引擎是Scikit_Learn。
runtime字段是python3.6,表示推理環境中安裝的python版本是3.6。部署在線服務的時候,選擇cpu資源即可。
apis字段定義了請求API的協議是HTTPS,通過post請求接受和返回信息。
request中設置了API請求接受的數據類型是json,接受的數據會放到名稱叫req_data的數組中。
response中將返回數據的內容類型設置為form-data,以表單的形式返回。預測結果放到名稱為resp_data的數組中。
復用指導
對于一個傳統機器學習的模型,可以復用上面的推理配置文件。復用指導參考樣例一的復用指導。
附:
如何部署模型到ModelArts并遠程調用 (一):保存模型為平臺支持的格式
如何部署模型到ModelArts并遠程調用 (三):編寫推理代碼
如何部署模型到ModelArts并遠程調用 (四):導入模型
如何部署模型到ModelArts并遠程調用 (五):如何調用在線API服務
AI開發平臺ModelArts
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。