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
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
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
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
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