iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
0
DevOps

30 Days of MLOps系列 第 14

SignatureDefs

  • 分享至 

  • xImage
  •  

TensorFlow Serving 提供高層次的 API,但要使用這些 API, Model 必須要包含一個或多個 SignatureDefs,明確的定義了 Model 可接受的輸入跟輸出值。

Classification 的 SignatureDef

這個結構可以被 TensorFlow Serving 的 Classification API 所使用, 而 inputs 一定要存在, 而 classesscores 其中一個一定要存在。

signature_def: {
  key  : "my_classification_signature"
  value: {
    inputs: {
      key  : "inputs"
      value: {
        name: "tf_example:0"
        dtype: DT_STRING
        tensor_shape: ...
      }
    }
    outputs: {
      key  : "classes"
      value: {
        name: "index_to_string:0"
        dtype: DT_STRING
        tensor_shape: ...
      }
    }
    outputs: {
      key  : "scores"
      value: {
        name: "TopKV2:0"
        dtype: DT_FLOAT
        tensor_shape: ...
      }
    }
    method_name: "tensorflow/serving/classify"
  }
}

Predict 的 SignatureDef

可以彈性的支持多個 input 和 output 值。

signature_def: {
  key  : "my_prediction_signature"
  value: {
    inputs: {
      key  : "images"
      value: {
        name: "x:0"
        dtype: ...
        tensor_shape: ...
      }
    }
    outputs: {
      key  : "scores"
      value: {
        name: "y:0"
        dtype: ...
        tensor_shape: ...
      }
    }
    method_name: "tensorflow/serving/predict"
  }
}

Regression 的 SignatureDef

這個結構可以被 TensorFlow Serving 的 Regression API 所使用, 而 inputsoutputs 是一定要存在。

signature_def: {
  key  : "my_regression_signature"
  value: {
    inputs: {
      key  : "inputs"
      value: {
        name: "x_input_examples_tensor_0"
        dtype: ...
        tensor_shape: ...
      }
    }
    outputs: {
      key  : "outputs"
      value: {
        name: "y_outputs_0"
        dtype: DT_FLOAT
        tensor_shape: ...
      }
    }
    method_name: "tensorflow/serving/regress"
  }
}

延伸閱讀


上一篇
輸出可以 Serving 的 Model
下一篇
tf.saved_model 命名空間下的類別
系列文
30 Days of MLOps23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言