无法构造 Explanation 对象
Cannot construct an Explanation object
正在尝试为单元测试构造一个 Explanation
对象,但似乎无法让它工作。这是我正在尝试的:
from google.cloud import aiplatform
aiplatform.compat.types.explanation_v1.Explanation(
attributions=aiplatform.compat.types.explanation_v1.Attribution(
{
"approximation_error": 0.010399332817679649,
"baseline_output_value": 0.9280818700790405,
"feature_attributions": {
"feature_1": -0.0410824716091156,
"feature_2": 0.01155053575833639,
},
"instance_output_value": 0.6717480421066284,
"output_display_name": "true",
"output_index": [0],
"output_name": "scores",
}
)
)
给出:
".venv/lib/python3.7/site-packages/proto/message.py", line 521, in __init__
super().__setattr__("_pb", self._meta.pb(**params))
TypeError: Value must be iterable
我在 github 上找到了 this,但我不确定如何在此处应用该解决方法。
因为错误提到要在 attributions
传递的值应该是 iterable。参见 Explanation attributes documentation。
我尝试了您的代码并将 Attribution
对象放入列表中,错误消失了。我在变量中分配了您的对象,以便代码可读。
查看下面的代码和测试:
from google.cloud import aiplatform
test = {
"approximation_error": 0.010399332817679649,
"baseline_output_value": 0.9280818700790405,
"feature_attributions": {
"feature_1": -0.0410824716091156,
"feature_2": 0.01155053575833639,
},
"instance_output_value": 0.6717480421066284,
"output_display_name": "true",
"output_index": [0],
"output_name": "scores",
}
attributions=aiplatform.compat.types.explanation_v1.Attribution(test)
x = aiplatform.compat.types.explanation_v1.Explanation(
attributions=[attributions]
)
print(x)
输出:
attributions {
baseline_output_value: 0.9280818700790405
instance_output_value: 0.6717480421066284
feature_attributions {
struct_value {
fields {
key: "feature_1"
value {
number_value: -0.0410824716091156
}
}
fields {
key: "feature_2"
value {
number_value: 0.01155053575833639
}
}
}
}
output_index: 0
output_display_name: "true"
approximation_error: 0.010399332817679649
output_name: "scores"
}
正在尝试为单元测试构造一个 Explanation
对象,但似乎无法让它工作。这是我正在尝试的:
from google.cloud import aiplatform
aiplatform.compat.types.explanation_v1.Explanation(
attributions=aiplatform.compat.types.explanation_v1.Attribution(
{
"approximation_error": 0.010399332817679649,
"baseline_output_value": 0.9280818700790405,
"feature_attributions": {
"feature_1": -0.0410824716091156,
"feature_2": 0.01155053575833639,
},
"instance_output_value": 0.6717480421066284,
"output_display_name": "true",
"output_index": [0],
"output_name": "scores",
}
)
)
给出:
".venv/lib/python3.7/site-packages/proto/message.py", line 521, in __init__
super().__setattr__("_pb", self._meta.pb(**params))
TypeError: Value must be iterable
我在 github 上找到了 this,但我不确定如何在此处应用该解决方法。
因为错误提到要在 attributions
传递的值应该是 iterable。参见 Explanation attributes documentation。
我尝试了您的代码并将 Attribution
对象放入列表中,错误消失了。我在变量中分配了您的对象,以便代码可读。
查看下面的代码和测试:
from google.cloud import aiplatform
test = {
"approximation_error": 0.010399332817679649,
"baseline_output_value": 0.9280818700790405,
"feature_attributions": {
"feature_1": -0.0410824716091156,
"feature_2": 0.01155053575833639,
},
"instance_output_value": 0.6717480421066284,
"output_display_name": "true",
"output_index": [0],
"output_name": "scores",
}
attributions=aiplatform.compat.types.explanation_v1.Attribution(test)
x = aiplatform.compat.types.explanation_v1.Explanation(
attributions=[attributions]
)
print(x)
输出:
attributions {
baseline_output_value: 0.9280818700790405
instance_output_value: 0.6717480421066284
feature_attributions {
struct_value {
fields {
key: "feature_1"
value {
number_value: -0.0410824716091156
}
}
fields {
key: "feature_2"
value {
number_value: 0.01155053575833639
}
}
}
}
output_index: 0
output_display_name: "true"
approximation_error: 0.010399332817679649
output_name: "scores"
}