全部產品
Search
文件中心

Platform For AI:TensorFlow Serving鏡像部署

更新時間:Oct 22, 2024

TensorFlow Serving是一個適用於深度學習模型的推理服務引擎,支援將TensorFlow標準的SavedModel格式的模型部署為線上服務,並支援模型熱更新與模型版本管理等功能。本文為您介紹如何使用鏡像部署的方式部署TensorFlow Serving模型服務。

部署服務

部署單模型服務

  1. 在OSS儲存空間中建立模型儲存目錄,詳情請參見管理目錄

    TensorFlow Serving模型的儲存目錄要求以如下目錄結構儲存模型:

    • 模型版本目錄:每個模型至少包含一個模型版本目錄,且必須以數字命名,作為模型版本號碼,數字越大版本號碼越新。

    • 模型檔案:模型版本目錄下存放匯出的SavedModel格式的模型檔案,服務會自動載入最大模型版本號碼目錄下的模型檔案。

    假設模型儲存目錄在oss://examplebucket/models/tf_serving/ 路徑下,模型儲存目錄的格式如下:

    tf_serving
    └── mnist
        └──1
           ├── saved_model.pb
           └── variables
               ├── variables.data-00000-of-00001
               └── variables.index
  2. 部署TensorFlow Serving模型服務。

    支援以下兩種部署方法:

    • 情境化模型部署:適用於基本情境部署。您只需配置幾個參數,即可一鍵部署TensorFlow Serving模型服務。

    • 自訂模型部署:適用於在特定環境下啟動並執行服務。您可以根據自身業務的具體需求來調整更多配置選項,從而實現更靈活的服務配置。

    情境化模型部署

    TensorFlow Serving模型服務支援配置8501和8500兩種連接埠。該部署方式預設使用8501連接埠,如果您需要使用8500連接埠或調整更多配置選項,請切換至自訂模型部署頁簽進行部署。

    • 8501:支援HTTP請求,在8501連接埠啟動HTTP或REST服務。

    • 8500:支援gRPC請求,在8500連接埠啟動gRPC服務。

    具體操作步驟如下:

    1. 登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS

    2. 模型線上服務(EAS)頁面,單擊部署服務。然後在情境化模型部署地區,單擊TFServing部署

    3. TFServing部署頁面,配置以下關鍵參數,其他參數配置說明,請參見服務部署:控制台

      參數

      描述

      服務名稱

      自訂佈建服務名稱。

      部署方式

      選擇標準模型部署

      模型配置

      OSS配置為步驟1中已準備的模型所在的OSS儲存路徑,例如oss://examplebucket/models/tf_serving/

    4. 參數配置完成後,單擊部署

    自訂模型部署

    具體操作步驟如下:

    1. 登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS

    2. 模型線上服務(EAS)頁面,單擊部署服務。然後在自訂模型部署地區,單擊自訂部署

    3. 建立服務頁面配置以下關鍵參數,更多參數配置說明,請參見服務部署:控制台

      參數

      描述

      部署方式

      選擇鏡像部署服務

      鏡像選擇

      PAI平台鏡像列表中選擇tensorflow-serving和對應的鏡像版本。建議選擇最新版本。

      說明

      如果服務需要使用GPU,則鏡像版本必須選擇x.xx.x-gpu

      填寫模型配置

      單擊填寫模型配置,進行模型配置。

      • 模型配置選擇OSS,將OSS路徑配置為步驟1中模型儲存目錄所在的OSS Bucket目錄,例如:oss://examplebucket/models/tf_serving/

      • 掛載路徑:配置為/models

      運行命令

      tensorflow-serving的啟動參數,例如:/usr/bin/tf_serving_entrypoint.sh --model_name=mnist_model --model_base_path=/models/mnist。其中:

      • --model_name:用於指定模型名稱。如果不配置,預設名稱為model。

      • --model_base_path:用於指定模型儲存目錄在執行個體中的路徑。如果不配置,預設路徑為/models/model

      支援配置以下連接埠號碼:

      • 8501:支援HTTP請求,在8501連接埠啟動HTTP或REST服務。

      • 8500:支援gRPC請求,在8500連接埠啟動gRPC服務,同時您需要在對應配置編輯中添加以下配置。

        "metadata": {
            "enable_http2": true
        },
        "networking": {
            "path": "/"
        }

      參數配置完成後,您可以在對應配置編輯地區查看服務部署組態。樣本內容如下:

      {
          "metadata": {
              "name": "tensorflow_server_image",
              "instance": 1,
          },
          "cloud": {
              "computing": {
                  "instance_type": "ml.gu7i.c8m30.1-gu30",
                  "instances": null
              }
          },
          "storage": [
              {
                  "oss": {
                      "path": "oss://examplebucket/models/tf_serving/",
                      "readOnly": false
                  },
                  "properties": {
                      "resource_type": "model"
                  },
                  "mount_path": "/models"
              }
          ],
          "containers": [
              {
                  "image": "eas-registry-vpc.cn-shanghai.cr.aliyuncs.com/pai-eas/tensorflow_serving:1.15.0",
                  "script": "/usr/bin/tf_serving_entrypoint.sh --model_name=mnist_model --model_base_path=/models/mnist",
                  "port": 8501
              }
          ]
      }
    4. 單擊部署

部署多模型服務

TensorFlow Serving支援同時部署多個模型,具體操作步驟如下。

  1. 在OSS Bucket中建立模型儲存目錄,詳情請參見管理目錄

    假設模型儲存目錄在oss://examplebucket/models/tf_serving/ 路徑下,多個模型儲存目錄的格式如下:

    tf_serving
    ├── model_config.pbtxt
    │   
    ├── model1
    │   ├── 1
    │   │   ├── saved_model.pb
    │   │   └── variables
    │   │       ├── variables.data-00000-of-00001
    │   │       └── variables.index
    │   ├── 2
    │   │   └── ...
    │   └── 3
    │       └── ...
    │
    ├── model2
    │   ├── 1
    │   │   └── ...
    │   └── 2
    │       └── ...
    │
    └── model3
        ├── 1
        │   └── ...
        ├── 2
        │   └── ...
        └── 3
            └── ...

    其中模型設定檔model_config.pbtxt內容樣本如下。

    model_config_list {
      config {
        name: 'model1'
        base_path: '/models/model1/'
        model_platform: 'tensorflow'
        model_version_policy{
            specific {
                versions: 1
                versions: 2
            }
        }
        version_labels {
          	key: 'stable'
          	value: 1
        }
        version_labels {
          	key: 'canary'
          	value: 2
        }
      }
      config {
        name: 'model2'
        base_path: '/models/model2/'
        model_platform: 'tensorflow'
        model_version_policy{
            all: {}
        }
      }
      config {
        name: 'model3'
        base_path: '/models/model3/'
        model_platform: 'tensorflow'
        model_version_policy{
            latest {
                num_versions: 2
            }
        }
      }
    }

    其中關鍵配置說明如下:

    參數

    是否必選

    描述

    name

    自訂配置模型名稱。建議配置該參數,如果不配置模型名稱,則model_name為空白,後續無法調用該模型服務。

    base_path

    配置模型儲存目錄在執行個體中的路徑,後續部署服務時用於讀模數型檔案。例如:掛載目錄為/models,要載入的模型目錄為/models/model1,則該參數配置為/models/model1

    model_version_policy

    表示模型版本載入策略。

    • 不配置該參數:表示預設載入模型最新版本。

    • all{}:表示載入該模型所有版本。樣本中model2模型載入所有版本。

    • latest{num_versions}:樣本中model3配置為num_versions: 2,表示載入最新的2個版本,即版本2和3。

    • specific{}:表示載入指定版本。樣本中model1模型載入版本1和2。

    version_labels

    為模型版本配置自訂標籤。

    說明

    標籤預設只能分配給已成功載入並啟動為服務的模型版本,若想要預先為尚未載入的模型版本分配標籤,需要在運行命令中設定啟動參數--allow_version_labels_for_unavailable_models=true

  2. 部署服務。

    支援以下兩種部署方式:

    情境化模型部署

    TensorFlow Serving模型服務支援配置8500和8501兩種連接埠。該部署方式預設使用8501連接埠,實現基本的情境化部署。如果您需要調整更多配置選項,比如更新連接埠、配置模型檔案輪詢周期等,請切換至自訂模型部署頁簽進行部署。

    • 8501:支援HTTP請求,在8501連接埠啟動HTTP或REST服務。

    • 8500:支援gRPC請求,在8500連接埠啟動gRPC服務。

    具體操作步驟如下:

    1. 登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS

    2. 模型線上服務(EAS)頁面,單擊部署服務。然後在情境化模型部署地區,單擊TFServing部署

    3. TFServing部署頁面,配置以下關鍵參數,其他參數配置說明,請參見服務部署:控制台

      參數

      描述

      服務名稱

      自訂佈建服務名稱。

      部署方式

      選擇設定檔部署

      模型配置

      • OSS配置為步驟1已準備的多模型檔案所在的OSS儲存路徑,例如oss://examplebucket/models/tf_serving/

      • 設定檔配置為步驟1已準備的模型設定檔model_config.pbtxt所在的OSS儲存路徑。

    4. 參數配置完成後,單擊部署

    自訂模型部署

    具體操作步驟如下:

    1. 登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS

    2. 模型線上服務(EAS)頁面,單擊部署服務。然後在自訂模型部署地區,單擊自訂部署

    3. 建立服務頁面配置以下關鍵參數,更多參數配置說明,請參見服務部署:控制台

    4. 參數

      描述

      部署方式

      選擇鏡像部署服務

      鏡像選擇

      PAI平台鏡像列表中選擇tensorflow-serving和對應的鏡像版本。建議選擇最新版本。

      說明

      如果服務需要使用GPU,則鏡像版本必須選擇x.xx.x-gpu。

      填寫模型配置

      單擊填寫模型配置,進行模型配置。

      • 模型配置選擇OSS,將OSS路徑配置為步驟1中模型儲存目錄所在的OSS Bucket目錄,例如:oss://examplebucket/models/tf_serving/

      • 掛載路徑:配置為/models

      運行命令

      運行命令配置樣本為:/usr/bin/tf_serving_entrypoint.sh --model_config_file=/models/model_config.pbtxt --model_config_file_poll_wait_seconds=30 --allow_version_labels_for_unavailable_models=true

      參數說明如下:

      • --model_config_file:必選。用來指定模型設定檔。

      • --model_config_file_poll_wait_seconds:選填。如果您希望在服務啟動後修改模型設定檔的內容,需要配置輪詢模型檔案的周期,單位為秒。服務會按照配置的時間定期讀模數型設定檔的內容。例如--model_config_file_poll_wait_seconds=30表示服務每隔30秒讀取一次模型設定檔內容。

        說明

        當模型服務讀取新的模型設定檔時,只會執行新設定檔中的內容。例如:舊設定檔中包含模型A,而新設定檔將模型A刪除並增加了模型B的配置,那麼服務會卸載模型A並載入模型B。

      • --allow_version_labels_for_unavailable_models:選填。預設為false,如果您想預先為尚未載入的模型版本分配標籤,需要將該參數配置為true。例如--allow_version_labels_for_unavailable_models=true

      連接埠號碼預設為8501,服務將在8501連接埠啟動HTTP或REST服務,支援HTTP請求。若您需要該服務支援gRPC請求,需要將連接埠號碼修改為8500,同時需要在對應配置編輯中添加以下配置,服務將支援gRPC請求。

      "metadata": {
          "enable_http2": true
      },
      "networking": {
          "path": "/"
      }
    5. 單擊部署

發送服務要求

根據服務部署時運行命令中配置的連接埠號碼,分別支援HTTP和gRPC兩種請求協議。

  • HTTP請求

    連接埠號碼配置為8501,服務支援HTTP請求,發送服務要求支援以下兩種方式:

    通過控制台發送服務要求

    服務部署完成後,單擊服務操作列下的線上調試,在該頁面發送服務要求。其中關鍵參數配置如下:

    參數

    描述

    線上調試請求參數

    在服務訪問地址後增加/v1/models/<model_name>:predict,其中:

    • <model_name>:單模型發送HTTP請求時,配置為運行命令中配置的模型名稱;多模型發送HTTP請求時,配置為模型設定檔中配置的模型名稱。

    • <version_num>:可選配置,未指定版本號碼則預設載入版本號碼最大的模型。您也可以指定模型版本號碼,格式為:/v1/models/<model_name>/versions/<version_num>:predict

    Body

    佈建服務請求資料,例如:

    {"signature_name": "predict_images", "inputs": [[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]]}

    參數配置完成後,單擊發送請求,輸出如下類似結果。

    image

    通過Python代碼發送服務要求

    Python程式碼範例如下:

    from urllib import request
    import json
    
    # 服務訪問地址,未指定版本號碼則預設載入版本號碼最大的模型;您也可以參照下方url參數說明指定模型版本號碼。
    url = '<service_url>/v1/models/<model_name>:predict'
    
    # 建立HTTP請求。
    req = request.Request(url, method="POST")
    # test-token替換為服務Token。
    req.add_header('authorization', '<test-token>')
    data = {
        'signature_name': 'predict_images',
        'inputs': [[1.0] * 784]
    }
    
    # 請求服務。
    response = request.urlopen(req, data=json.dumps(data).encode('utf-8')).read()
    
    # 查看返回結果。
    response = json.loads(response)
    print(response)

    其中關鍵參數配置如下:

    參數

    描述

    url

    格式為:<service_url>/v1/models/<model_name>:predict

    其中:

    • <service_url>:需要替換為您部署的服務訪問地址。您可以在模型線上服務(EAS)頁面,單擊待調用服務服務方式列下的調用資訊,在公網地址調用頁簽查看服務訪問地址。

    • <model_name>:配置方式如下。

      • 單模型發送HTTP請求

        配置為運行命令中配置的模型名稱。

      • 多模型發送HTTP請求

        配置為模型設定檔中配置的模型名稱。

    • <version_num>:可選配置,未指定版本號碼則預設載入版本號碼最大的模型。您也可以指定模型版本號碼,格式為:<service_url>/v1/models/<model_name>/versions/<version_num>:predict

    header

    <test-token>替換為服務Token。您可以在公網地址調用頁簽查看Token。

  • gRPC請求

    連接埠號碼配置為8500,並添加gRPC相關配置後,服務支援發送gRPC請求。Python程式碼範例如下:

    import grpc
    from tensorflow_serving.apis import predict_pb2
    from tensorflow_serving.apis import prediction_service_pb2_grpc
    from tensorflow.core.framework import tensor_shape_pb2
    
    # 服務訪問地址。
    host = "tf-serving-multi-grpc-test.166233998075****.cn-hangzhou.pai-eas.aliyuncs.com:80"
    
    name = "<model_name>"
    signature_name = "predict_images"
    version = <version_num>
    
    # 建立gRPC請求。
    shape = tensor_shape_pb2.TensorShapeProto()
    dim1 = tensor_shape_pb2.TensorShapeProto.Dim(size=1)
    dim2 = tensor_shape_pb2.TensorShapeProto.Dim(size=784)
    shape.dim.extend([dim1, dim2])
    
    request = predict_pb2.PredictRequest()
    request.model_spec.name = name
    request.model_spec.signature_name = signature_name
    request.model_spec.version.value = version
    request.inputs["images"].tensor_shape.CopyFrom(shape)
    request.inputs["images"].float_val.extend([1.0] * 784)
    request.inputs["images"].dtype = 1
    
    # 請求服務。
    channel = grpc.insecure_channel(host)
    stub = prediction_service_pb2_grpc.PredictionServiceStub(channel)
    metadata = (("authorization", "<test-token>"),)
    response, _ = stub.Predict.with_call(request, metadata=metadata)
    
    print(response)

    其中關鍵參數配置如下:

    參數

    描述

    host

    需要配置為服務訪問地址,服務訪問地址需要省略http://並在末尾添加:80。您可以在模型線上服務(EAS)頁面,單擊待調用服務服務方式列下的調用資訊,在公網地址調用頁簽查看服務訪問地址。

    name

    • 單模型發送gRPC請求

      配置為運行命令中配置的模型名稱。

    • 多模型發送gRPC請求

      配置為模型設定檔中配置的模型名稱。

    version

    配置為模型版本號碼。每次只能對單個模型版本發送請求。

    metadata

    配置為服務Token。您可以在公網地址調用頁簽查看Token。

相關文檔