本文為您介紹自定義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服務配置公網連接,詳情請參見公網連接及白名單配置。