python - 为什么我在 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”
解决方案
看看这个例子,你就会明白发生了什么:
>>> 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"}
推荐阅读
- google-cloud-platform - 在 AI Platform 的 Notebooks 部分下看不到 Notebook
- python-3.x - 使用 PyOpenCl 进行模板匹配
- python - 如何在 django 模型的输入字段中或附近添加占位符
- python - 如何从 yml 文件执行 python 代码?
- firebase - 从firebase可调用函数返回什么?
- node.js - 带有 upsert 的 $in 时 mongo 更新中的一些问题
- java - Angular Typescript why can assign a Promise
to object of classA - ruby-on-rails - 在 Heroku 上运行 long rails 控制台或 rake 任务
- laravel - 在 laravel eloquent 中使用简单的 for 循环
- c - 文件空检查