Exemple #1
0
    def test_model_upload_compatibility(self):
        self._set_up()
        md_builder = saved_model_metadata_builder.SavedModelMetadataBuilder(
            self.model_path, tags=[tf.saved_model.tag_constants.SERVING])

        generated_md = md_builder.get_metadata_protobuf()

        try:
            models.Model.upload(
                display_name=test_models._TEST_MODEL_NAME,
                serving_container_image_uri=test_models.
                _TEST_SERVING_CONTAINER_IMAGE,
                explanation_parameters=test_models.
                _TEST_EXPLANATION_PARAMETERS,
                explanation_metadata=generated_md,  # Test metadata from builder
                labels=test_models._TEST_LABEL,
            )
        except TypeError as e:
            if "Parameter to MergeFrom() must be instance of same class" in str(
                    e):
                pytest.fail(
                    f"Model.upload() expects different proto version, more info: {e}"
                )
            else:
                raise e
Exemple #2
0
    def test_get_metadata_protobuf_correct_inputs(self):
        self._set_up()
        md_builder = saved_model_metadata_builder.SavedModelMetadataBuilder(
            self.model_path, tags=[tf.saved_model.tag_constants.SERVING])
        expected_object = explanation_metadata.ExplanationMetadata(
            inputs={"x": {
                "input_tensor_name": "inp:0"
            }},
            outputs={"y": {
                "output_tensor_name": "Relu:0"
            }},
        )

        assert md_builder.get_metadata_protobuf() == expected_object
Exemple #3
0
    def test_get_metadata_protobuf_double_output(self):
        self._set_up()
        md_builder = saved_model_metadata_builder.SavedModelMetadataBuilder(
            self.model_path,
            signature_name="double",
            outputs_to_explain=["lin"])

        expected_object = explanation_metadata.ExplanationMetadata(
            inputs={"x": {
                "input_tensor_name": "inp:0"
            }},
            outputs={"lin": {
                "output_tensor_name": "Add:0"
            }},
        )

        assert md_builder.get_metadata_protobuf() == expected_object
Exemple #4
0
    def test_get_metadata_correct_inputs(self):
        self._set_up()
        md_builder = saved_model_metadata_builder.SavedModelMetadataBuilder(
            self.model_path, tags=[tf.saved_model.tag_constants.SERVING])
        expected_md = {
            "inputs": {
                "x": {
                    "inputTensorName": "inp:0"
                }
            },
            "outputs": {
                "y": {
                    "outputTensorName": "Relu:0"
                }
            },
        }

        assert md_builder.get_metadata() == expected_md
Exemple #5
0
    def test_get_metadata_double_output(self):
        self._set_up()
        md_builder = saved_model_metadata_builder.SavedModelMetadataBuilder(
            self.model_path,
            signature_name="double",
            outputs_to_explain=["lin"])

        expected_md = {
            "inputs": {
                "x": {
                    "inputTensorName": "inp:0"
                }
            },
            "outputs": {
                "lin": {
                    "outputTensorName": "Add:0"
                }
            },
        }

        assert md_builder.get_metadata() == expected_md