本文為您介紹自訂Processor的相關問題。
如何解決匯入cv2報錯libSM.so.6: cannot open shared object file: No such file or directory的問題?
使用EASCMD建立任務,為什麼一直處於[OK] Waiting [Total: 1, Pending: 1, Running: 0]狀態?
自訂Processor壓縮包太大,如何提高上傳效率?
EAS推薦使用Docker鏡像上傳運行環境和大檔案。如果業務代碼產生變動,則只需要累加式更新改動部分即可,可以大幅度提升開發效率,詳情請參見使用Python開發自訂Processor。
如何解決匯入cv2報錯libSM.so.6: cannot open shared object file: No such file or directory
的問題?
常見的pip install opencv
方法依賴於libXext、libSM及libXrender庫。因為EAS線上環境沒有預裝libXext、libSM及libXrender庫,所以使用該命令安裝的cv2在離線測試環境中可能正常運行,但是線上上環境可能運行失敗。您可以通過以下任何一種方式解決該報錯:
使用
pip install openv-python-headless
安裝cv2,該方法不依賴於額外安裝的libXext、libSM及libXrender庫。尋找系統中已安裝的libXext、libSM及libXrender的二進位庫ISO檔案,將其拷貝至ENV/lib並隨Proccessor上傳。(這種方法可能出現其他依賴庫,需要根據實際情況解決。)
在EAS Python Processor中,如何配置環境變數?
因為EAS Python Processor會自動將Processor目錄下的所有目錄添加至LD_LIBRARY_PATH環境變數,所以將額外的依賴庫存放至Processor目錄的任意位置即可。如果是其他環境變數,則推薦在Python程式中使用os.environ['key'] = 'val'
進行配置。
EAS Processor如何避免代碼異常造成進程退出?
在開發商務服務邏輯過程中,在重要的地方增加異常檢測機制(try-catch),以保證業務代碼不會因為異常而退出。即使由於某些特殊原因導致進程退出,EAS可以自動重啟退出的進程,從而保證服務的穩定性。
如何配置AccessKey和Endpoint?
預測服務使用阿里雲AccessKey進行身份認證,提交任務時需要使用AccessKey ID和AccessKey Secret。Endpoint預設地區為華東2(上海),如果需要將模型部署至其它地區,可以使用-e參數指定地區對應的Endpoint,樣本如下。
./eascmd64 config -i <yourAccessKey ID> -k <yourAccessKey Secret> -e pai-eas.cn-beijing.aliyuncs.com
使用EASCMD建立任務,為什麼一直處於[OK] Waiting [Total: 1, Pending: 1, Running: 0]
狀態?
建立任務所需的資源可能不足或無法找到。首先需要確認配置的資源地區及資源名稱是否正確,然後確認是否有足夠的可用資源。如下的EAS資訊描述檔案可以查看相關配置。
{
"name": "service",
"token": "[Authorization-token]",
"data_image":"[your-public-docker-image-repo]",
"processor_entry": "app.py",
"processor_type": "python",
"processor_path": "[oss://eas-model-shenzhen/xxxxxxxxx/codes.tar.gz]",
"metadata": {
"region": "cn-shenzhen", # 確保資源群組所在的地區正確。
"resource": "resource-name", # 確保資源群組名稱(類似:EAS-LsFlrwBP56)正確且與地區對應。
"gpu": 1,
"cpu": 6,
"memory": 2000,
"instance": 2, # 每個執行個體佔用(gpu=1, cpu=6, memory=2000B)的資源。
# 如果可用資源不足,則該任務一直處於waiting狀態。
"cuda": "10.0"
}
}
EAS服務內部訪問公網失敗,如何解決?
使用自訂Processor部署EAS服務,由於代碼裡配置了從公網下載檔案,導致部署服務時報錯:負載檔案失敗。因為EAS服務內部預設與公網不通,您可以嘗試為EAS服務配置公網串連,詳情請參見公網串連及白名單配置。