1. 程式人生 > 其它 >Windows下安裝Docker並使用TF Serving的pb模型

Windows下安裝Docker並使用TF Serving的pb模型

安裝

  1. 下載並安裝docker桌面:連結
  2. 預設勾選即可,安裝完成後會強制要求重啟
  3. 重啟後可能會報一些錯誤,不用管直接全關掉,然後右擊托盤區的小鯨魚圖示,選擇Switch to Windows Containers
  4. 此時docker即可正常啟動了
  5. 在Settings裡的Docker Engine裡,將experimental項置為true,否則會報錯:no matching manifest for windows/amd64

使用

構建pb模型

以NER的BiLSTM-CRF模型為例:

import tensorflow as tf

builder = tf.saved_model.builder.SavedModelBuilder('./pb/')
inputs = {
    'inputX': tf.saved_model.utils.build_tensor_info(model.inputX),  # placeholder
    'inputY': tf.saved_model.utils.build_tensor_info(model.inputY),  # placeholder
    'inputZ': tf.saved_model.utils.build_tensor_info(model.seq_lens)  # placeholder
}
outputs = {
    'prediction': tf.saved_model.utils.build_tensor_info(model.viterbi_sequence)
}
signature = tf.saved_model.signature_def_utils.build_signature_def(
    inputs, 
    outputs, 
    'serving_default'
)
builder.add_meta_graph_and_variables(
    sess,
    [tf.saved_model.tag_constants.SERVING],
    signature_def_map={'serving_default': signature}
)
builder.save()

執行CMD:

docker run -p 8501:8501 --mount type=bind,source=pb檔案路徑,target=/models/目標模型 -e MODEL_NAME=模型名 -t tensorflow/serving &

預測

curl -X POST http://localhost:8501/v1/models/目標模型:predict -d '{"instances": [{"inputX":[21,20,60], "inputY": [0,0,0],"inputZ":30}]}'