You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Batch AI运行Keras模型结果无法保存至存储的问题咨询

解决Azure Batch AI中Keras模型结果未同步到存储的问题

你已经配置了输出目录,但核心问题是:Azure Batch AI不会自动扫描并同步所有文件,你需要在Python脚本里明确将模型结果保存到你定义的输出目录对应的本地路径,Batch AI才会在任务完成后把这个目录的内容同步到关联的存储中。下面是具体的解决步骤和注意事项:

1. 在Python脚本中使用Batch AI自动生成的环境变量指定保存路径

你在outputDirectories里定义了id: "MODEL",Batch AI会自动为这个输出目录生成一个环境变量AZ_BATCHAI_OUTPUT_MODEL,它指向该目录在虚拟机上的本地路径(对应你配置的$AZ_BATCHAI_MOUNT_ROOT/external/Models)。

在你的Keras脚本中,直接使用这个环境变量来指定模型的保存路径,示例代码如下:

import os
from keras.models import save_model

# 获取Batch AI配置的MODEL输出目录的本地路径
output_dir = os.environ.get("AZ_BATCHAI_OUTPUT_MODEL")

# 本地测试时的 fallback 路径(可选,方便本地调试)
if not output_dir:
    output_dir = "./local_models"
    os.makedirs(output_dir, exist_ok=True)

# 保存训练好的模型到指定目录
model.save(os.path.join(output_dir, "trained_keras_model.h5"))
# 如果有其他结果文件(比如训练日志、权重文件),也统一保存到这个目录下

这样一来,当任务完成时,Batch AI会自动将AZ_BATCHAI_OUTPUT_MODEL目录下的所有文件同步到你配置的存储位置(pathPrefix对应的外部存储的Models路径下)。

2. 验证输出目录配置的正确性

  • 确认pathPrefix中的external是你在任务/集群配置中已经挂载的存储账户的挂载名称(不是存储账户名),如果挂载名称不对,Batch AI无法找到对应的存储路径。
  • createNew: true会确保目录不存在时自动创建,但如果脚本没有往这个目录写入内容,自然不会有文件被同步。

3. 常见的遗漏点

  • 不要将结果保存到/mnt/batch/tasks/下的临时工作路径:这些路径是任务的临时工作目录,默认不会被同步到存储(除非你专门配置对应的outputDirectories指向这里,但不推荐,因为任务结束后临时路径可能被清理)。
  • 确保脚本正常退出:如果脚本因异常崩溃终止,Batch AI可能不会触发存储同步操作,建议在脚本中添加异常捕获和日志输出,确保任务正常完成。
  • 检查存储权限:确认Batch AI使用的服务主体拥有目标存储容器的读写权限,否则即使路径正确,也无法完成文件同步。

内容的提问来源于stack exchange,提问作者Nima Mousavi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:32:17