$ echo "deb [arch=amd64] http://storage.googleapis.com/tensorflow-serving-apt stable tensorflow-model-server tensorflow-model-server-universal" | sudo tee /etc/apt/sources.list.d/tensorflow-serving.list && curl https://storage.googleapis.com/tensorflow-serving-apt/tensorflow-serving.release.pub.gpg | sudo apt-key add - $ sudo apt-get update && sudo apt-get install tensorflow-model-server2. 導出模型 在將模型部署到TensorFlow Serving之前,您需要導出您的訓練好的模型。您可以使用TensorFlow中的`tf.saved_model.builder.SavedModelBuilder` API將模型導出為`SavedModel`格式。
python import tensorflow as tf # 構建計算圖 input_tensor = tf.placeholder(tf.float32, shape=[None, 784], name="input") output_tensor = tf.placeholder(tf.float32, shape=[None, 10], name="output") hidden = tf.layers.dense(input_tensor, 256, activation=tf.nn.relu) logits = tf.layers.dense(hidden, 10, name="logits") loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=output_tensor)) train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss) # 訓練模型 with tf.Session() as sess: sess.run(tf.global_variables_initializer()) for i in range(1000): batch_xs, batch_ys = mnist.train.next_batch(100) sess.run(train_op, feed_dict={input_tensor: batch_xs, output_tensor: batch_ys}) # 導出模型 builder = tf.saved_model.builder.SavedModelBuilder("model") builder.add_meta_graph_and_variables(sess, ["serve"]) builder.save()在這個例子中,我們創建了一個具有256個隱藏神經元的單層神經網絡,并使用MNIST數據集訓練了1000個epoch。我們使用`SavedModelBuilder`將模型導出到名為"model"的目錄中。 3. 啟動TensorFlow Serving 接下來,您需要啟動TensorFlow Serving。您可以使用以下命令啟動TensorFlow Serving:
$ tensorflow_model_server --port=9000 --model_name=my_model --model_base_path=/path/to/my_model在這個例子中,我們將模型名稱設置為"my_model",并將模型的路徑設置為"/path/to/my_model",將TensorFlow Serving的端口設置為9000。 4. 發送預測現在,我們已經將模型部署到TensorFlow Serving中,并且可以使用客戶端發送預測請求。 在Python中,您可以使用`tensorflow`庫的`gprc`模塊來與TensorFlow Serving進行通信。您可以使用以下代碼發送預測請求:
python import tensorflow as tf from tensorflow_serving.apis import predict_pb2 from tensorflow_serving.apis import prediction_service_pb2_grpc # 創建gRPC stub channel = grpc.insecure_channel("localhost:9000") stub = prediction_service_pb2_grpc.PredictionServiceStub(channel) # 創建請求 request = predict_pb2.PredictRequest() request.model_spec.name = "my_model" request.model_spec.signature_name = tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY request.inputs["input"].CopyFrom(tf.contrib.util.make_tensor_proto(input_data, shape=[1, 784])) # 發送請求 result = stub.Predict(request, 10.0) # 等待10秒鐘的超時時間在這個例子中,我們使用`grpc.insecure_channel`創建了一個與TensorFlow Serving通信的gRPC stub。我們創建了一個`PredictRequest`請求,并將其發送到TensorFlow Serving。我們還指定了一個等待10秒鐘的超時時間,以確保請求能夠成功地完成。 在這個例子中,我們發送了一個大小為1x784的輸入張量,并將其包含在`PredictRequest`請求中。我們還指定了`signature_name`為`tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY`,這表示我們使用默認的模型簽名。 5. 總結 在本文中,我們介紹了如何使用TensorFlow Serving將機器學習模型部署到生產環境中。我們首先介紹了如何導出訓練好的模型,然后介紹了如何啟動TensorFlow Serving。最后,我們介紹了如何使用Python客戶端向TensorFlow Serving發送預測請求。 TensorFlow Serving提供了許多有用的功能,如模型版本控制、模型熱更新和模型的灰度發布等,這使得TensorFlow Serving成為生產環境中部署機器學習模型的理想選擇。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/130762.html
摘要:大會以機器學習資料中心和云端安全為主要議題,為未來發展做戰略規劃。在年,谷歌開發了一個內部深度學習基礎設施叫做,這個設施允許谷歌人創建更大的神經網絡和擴容實訓成千上萬個核心。 導言 Google近日3月23-24日在美國舊金山舉辦首次谷歌云平臺(Google Cloud Platform) GCP NEXT大會,參會人數超過2000人。GCP NEXT大會以機器學習、資料中心和云端安全...
摘要:從實驗到生產,簡單快速部署機器學習模型一直是一個挑戰。總結上面我們快速實踐了使用和部署機器學習服務的過程,可以看到,提供了非常方便和高效的模型管理,配合,可以快速搭建起機器學習服務。 從實驗到生產,簡單快速部署機器學習模型一直是一個挑戰。這個過程要做的就是將訓練好的模型對外提供預測服務。在生產中,這個過程需要可重現,隔離和安全。這里,我們使用基于Docker的TensorFlow Se...
閱讀 3018·2023-04-25 20:22
閱讀 3335·2019-08-30 11:14
閱讀 2590·2019-08-29 13:03
閱讀 3177·2019-08-26 13:47
閱讀 3218·2019-08-26 10:22
閱讀 1263·2019-08-23 18:26
閱讀 607·2019-08-23 17:16
閱讀 1908·2019-08-23 17:01