首页 > 解决方案 > 为什么我在 IBM Watson Studio 上的 Jupyter Notebook 中执行 AttributeError: 'ModelMetaNames' object has no attribute 'AUTHOR_NAME'

问题描述

我正在关注一个教程,这一步不应该给出任何错误,但我偶然发现了这个意想不到的问题。这里出了什么问题?这是代码块:

model_props = {client.repository.ModelMetaNames.AUTHOR_NAME: "IBM", 
           client.repository.ModelMetaNames.NAME: "Heart Failure Prediction Model"}
published_model = client.repository.store_model(model=model_rf, pipeline=pipeline_rf, 
meta_props=model_props, training_data=train_data)

错误:

() ----> 1 model_props = {client.repository.ModelMetaNames.AUTHOR_NAME: "IBM", 2 client.repository.ModelMetaNames.NAME: "Heart Failure Prediction Model"} 3 published_model 中的 AttributeError Traceback (最近一次调用最后一次) = client.repository.store_model(model=model_rf, pipeline=pipeline_rf, meta_props=model_props, training_data=train_data)

AttributeError:“ModelMetaNames”对象没有属性“AUTHOR_NAME”

标签: pythonibm-watson

解决方案


看看这个例子,你就会明白发生了什么:

>>> a = "mykeyname"
>>> {a:"my value"}
{'mykeyname': 'my value'}

因此,您正在尝试将值client.repository.ModelMetaNames.AUTHOR_NAME用作字典中的键。但是您的模型中不存在此类属性。

如果要在对象或类中设置变量,只需执行以下操作:

client.repository.ModelMetaNames.AUTHOR_NAME = "IBM"

或者,如果您想拥有字典对象:

props = {"AUTHOR_NAME": "IBM", "OTHERKEY": "Something else"}

推荐阅读