本文为您介绍自定义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服务配置公网连接,详情请参见公网连接及白名单配置。