机器学习PAI 代码运行报错怎么办?

机器学习PAI 代码运行报错怎么办?
655d1ecf323cc3b36b04096a18948425.png
b54ce7c5fcce3923a0655a7b1ec27cb6.png
13c1e11855b0555d157f603c9992184d.png

展开
收起
你鞋带开了~ 2024-03-04 20:14:32 94 分享 版权
阿里云 AI 助理回答

在使用阿里云机器学习平台PAI时,代码运行报错可能由多种原因引起。以下是针对常见问题的详细分析和解决方法,结合知识库中的参考资料提供专业指导:


1. 输入格式错误 (INPUT_FORMAT_ERROR)

如果报错信息提示INPUT_FORMAT_ERROR,通常是因为输入数据格式不符合要求。可以尝试以下操作: - 将数据序列化为JSON字符串
使用json.dumps()方法将数据转换为字符串格式。例如:

import json
data = json.dumps(datas)
  • 调试请求
    如果是在本地命令行调试时遇到问题,建议使用Postman工具发送请求,验证接口调用是否正确。
  • 调整图片大小
    如果是目标检测模型部署时的报错,可能是图片过大导致的。尝试减小图片尺寸后再提交任务。

2. 参数无效或权限问题 (param invalid UserNotInTnt)

如果报错信息提示param invalid UserNotInTnt,通常是由于用户权限配置不正确。可以按照以下步骤排查: - 设置工作空间管理员
在iTag的人员管理页面,将对应的RAM账号设置为管理员。 - 检查子账号权限
如果iTag是由其他子账号创建的,可以让该子账号将主账号添加到权限列表中。 - 重新创建工作空间
如果AI工作空间时间较久,可能存在权限异常。建议创建一个新的AI工作空间并重新配置iTag。 - 参考授权文档
更多授权操作可参考为PAI-iTAG授权的相关文档。


3. GPU资源不足或未开启

如果日志中出现No available cluster has the required feature: fuxi_gpu,gpu_with_vm_cuda8的报错,说明当前工作空间关联的MaxCompute计算资源未开启GPU功能。解决方法如下: - 开启GPU功能
在工作空间的资源管理中启用GPU功能,具体操作可参考管理工作空间的文档。 - 检查地域限制
确保您所在的地域(如华北2、华东2等)支持GPU资源。如果不支持,可以考虑切换到支持GPU的地域。


4. 内存不足或进程被强制终止 (Error Code 137)

如果遇到错误码137,通常是因为内存使用量过高(OOM错误)。可以采取以下措施: - 更换实例规格
选择内存更大的实例类型。 - 增加Worker数量
分布式训练任务可以通过增加Worker数量来分摊内存压力。 - 优化代码内存申请
检查代码中是否有不必要的内存占用,并进行优化。 - 查看内存水位
结合任务详情中Worker的内存使用情况,进一步定位内存不足的原因。


5. 自定义Processor相关问题

如果使用自定义Processor时遇到问题,可以参考以下解决方案: - 压缩包过大
推荐使用Docker镜像上传运行环境和大文件,仅增量更新改动部分以提高效率。 - 导入cv2报错
如果出现libSM.so.6: cannot open shared object file的错误,可以通过以下方式解决: - 使用pip install opencv-python-headless安装无依赖版本的cv2。 - 或者将系统中已安装的libXext、libSM及libXrender库拷贝至ENV/lib目录并随Processor上传。 - 配置环境变量
将额外的依赖库存放至Processor目录的任意位置,EAS会自动将其添加至LD_LIBRARY_PATH环境变量。其他环境变量可通过os.environ['key'] = 'val'配置。 - 避免代码异常退出
在关键代码段增加异常检测机制(try-catch),确保服务稳定性。即使进程退出,EAS也会自动重启。


6. 日志查看与问题诊断

如果需要进一步定位问题,可以通过以下方式查看日志: - 工作流运行状态日志
显示分布式作业的服务器运行情况,格式为“正在计算的节点数/已计算结束的节点数/总计划节点数”。 - Logview日志
包含实验的Debug信息,帮助查看代码执行过程中的详细信息。具体操作如下: 1. 打开日志链接,进入Logview页面。 2. 双击实例,选择要查看的Task实例及Worker对应的实例。 3. 查看Stdout列下的Print信息或StdErr列下的报错信息。 - 注意事项
公共云GPU服务器即将过保下线,建议提交CPU版本的TensorFlow任务。如需使用GPU,请前往DLC提交任务。


7. 其他常见问题

  • 调度任务失败
    如果周期性调度任务失败,可以在任务详情页面查看失败原因,或通过运维中心查看调度运行情况。
  • OSS跨域访问配置
    如果涉及OSS文件预览或访问,需正确配置跨域规则。具体步骤包括:
    1. 登录OSS管理控制台,进入目标Bucket的详情页面。
    2. 配置跨域规则,允许必要的Methods、Headers和暴露Headers。
    3. 保存配置后即可正常使用。

总结与建议

根据上述内容,您可以根据具体的报错信息快速定位问题并采取相应措施。如果问题仍未解决,建议: - 提交工单:联系阿里云技术支持团队获取进一步帮助。 - 参考官方文档:查阅PAI相关产品的官方文档,获取更详细的配置和操作指南。

希望以上解答能帮助您解决问题!您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。

还有其他疑问?
咨询AI助理