无法构造 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"
}