Azure ML标注项目报错:_LabeledDatasetFactory无from_input_data_reference属性
问题解决:Azure ML代码创建标注项目的AttributeError修复
问题根源
你犯了两个关键错误:
- 直接调用了SDK内部类
_LabeledDatasetFactory(以下划线开头的类为内部实现,不对外公开,不应直接实例化使用); - 该类不存在
from_input_data_reference方法,你误用了错误的方法名。
修正方案
使用公开的LabeledDatasetFactory类(去掉类名前的下划线),并调用正确的类方法创建标注项目。以下是两种可行的修正代码:
方案1:直接基于已注册数据集创建
from azureml.core import Workspace, Dataset from azureml.contrib.dataset import FileHandlingOption from azureml.contrib.dataset.labeled_dataset import LabeledDatasetFactory # 导入公开类 # 认证并初始化工作区 ws = Workspace.from_config() # 获取已注册数据集 dataset = Dataset.get_by_name(ws, 'my-registered-dataset') # 创建标注项目 project = LabeledDatasetFactory.from_dataset( dataset=dataset, label_column_name='my-label-column', file_handling_option=FileHandlingOption.SKIP_DOWNLOAD ) # 注册项目到工作区 project.register(ws)
方案2:基于InputDataReference创建
如果你需要使用输入数据引用(比如指定下载方式),可以使用from_input_data方法替代错误的from_input_data_reference:
from azureml.core import Workspace, Dataset from azureml.contrib.dataset import FileHandlingOption from azureml.contrib.dataset.labeled_dataset import LabeledDatasetFactory ws = Workspace.from_config() dataset = Dataset.get_by_name(ws, 'my-registered-dataset') # 使用from_input_data方法 project = LabeledDatasetFactory.from_input_data( input_data=dataset.as_named_input('my_data').as_download(), label_column_name='my-label-column', file_handling_option=FileHandlingOption.SKIP_DOWNLOAD ) project.register(ws)
额外注意事项
- 避免使用
contrib模块中的实验性组件,如果使用的是Azure ML SDK 1.20+版本,建议迁移到正式的azureml.data.labeled_dataset模块; - 永远不要直接调用以下划线开头的内部类,这类API没有兼容性保证,随时可能被修改或移除。
内容的提问来源于stack exchange,提问作者Mohammad
相关产品推荐
相关产品推荐

