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

Azure Machine Learning运行Keras多分类训练脚本数据集读取报错求助

问题根因

两个报错的核心原因是远程训练脚本的运行环境与本地主AML代码环境完全隔离:

  1. 直接用pd.read_csv("test_data")报错是因为你没有将AML数据集挂载到远程作业的运行路径,远程容器内不存在对应文件
  2. 调用dataset.get_by_name()报错是因为远程脚本里没有初始化Workspace对象,也没有导入Dataset类,且主代码中的dataset变量无法传递到远程运行环境
代码修改方案

1. 主AML代码修改

你主代码中已经获取了test_data数据集,仅需在ScriptRunConfig配置中新增数据集挂载参数即可,不需要在本地提前将数据集转成DataFrame,相关冗余代码可删除。
修改后的ScriptRunConfig部分代码如下:

from azureml.core import ScriptRunConfig

src = ScriptRunConfig(source_directory=script_folder,
                      script='EnsemblingModel.py',
                      # 新增:挂载test_data数据集并将挂载路径作为参数传递给训练脚本
                      arguments=[dataset.as_named_input('test_data').as_mount()],
                      compute_target=compute_target,
                      environment=keras_env)

其余主代码无需改动。

2. EnsemblingModel.py训练脚本修改

你需要新增参数解析逻辑接收数据集挂载路径,删除原有错误的读数据代码,修改后的数据读取部分代码如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import argparse # 新增参数解析库
import os

# 其他库导入代码保持不变

# 新增:参数解析,获取数据集挂载路径
parser = argparse.ArgumentParser()
parser.add_argument('--test_data', type=str)
args = parser.parse_args()

# 替换原有错误读数据代码
dataframe = pd.read_csv(args.test_data, header=None)
dataset = dataframe.values

# 后续X/y提取、模型训练代码保持不变

如果你的test_data是多文件数据集,挂载路径为文件夹,可替换读数据代码为:

data_path = os.path.join(args.test_data, "你的实际数据文件名.csv")
dataframe = pd.read_csv(data_path, header=None)
AML结合Keras使用学习资源
  • Azure Machine Learning官方文档内置的深度学习训练专项指南,包含Keras/TensorFlow适配的完整样例
  • Azure官方示例仓库提供的端到端Keras多分类训练、超参调优、模型部署完整代码模板
  • 微软Learn平台"使用AML训练和评估深度学习模型"系列学习路径,包含从零开始的实操练习

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 18:39:03