$ 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. 導(dǎo)出模型 在將模型部署到TensorFlow Serving之前,您需要導(dǎo)出您的訓(xùn)練好的模型。您可以使用TensorFlow中的`tf.saved_model.builder.SavedModelBuilder` API將模型導(dǎo)出為`SavedModel`格式。
python import tensorflow as tf # 構(gòu)建計(jì)算圖 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) # 訓(xùn)練模型 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}) # 導(dǎo)出模型 builder = tf.saved_model.builder.SavedModelBuilder("model") builder.add_meta_graph_and_variables(sess, ["serve"]) builder.save()在這個(gè)例子中,我們創(chuàng)建了一個(gè)具有256個(gè)隱藏神經(jīng)元的單層神經(jīng)網(wǎng)絡(luò),并使用MNIST數(shù)據(jù)集訓(xùn)練了1000個(gè)epoch。我們使用`SavedModelBuilder`將模型導(dǎo)出到名為"model"的目錄中。 3. 啟動(dòng)TensorFlow Serving 接下來,您需要啟動(dòng)TensorFlow Serving。您可以使用以下命令啟動(dòng)TensorFlow Serving:
$ tensorflow_model_server --port=9000 --model_name=my_model --model_base_path=/path/to/my_model在這個(gè)例子中,我們將模型名稱設(shè)置為"my_model",并將模型的路徑設(shè)置為"/path/to/my_model",將TensorFlow Serving的端口設(shè)置為9000。 4. 發(fā)送預(yù)測現(xiàn)在,我們已經(jīng)將模型部署到TensorFlow Serving中,并且可以使用客戶端發(fā)送預(yù)測請求。 在Python中,您可以使用`tensorflow`庫的`gprc`模塊來與TensorFlow Serving進(jìn)行通信。您可以使用以下代碼發(fā)送預(yù)測請求:
python import tensorflow as tf from tensorflow_serving.apis import predict_pb2 from tensorflow_serving.apis import prediction_service_pb2_grpc # 創(chuàng)建gRPC stub channel = grpc.insecure_channel("localhost:9000") stub = prediction_service_pb2_grpc.PredictionServiceStub(channel) # 創(chuàng)建請求 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])) # 發(fā)送請求 result = stub.Predict(request, 10.0) # 等待10秒鐘的超時(shí)時(shí)間在這個(gè)例子中,我們使用`grpc.insecure_channel`創(chuàng)建了一個(gè)與TensorFlow Serving通信的gRPC stub。我們創(chuàng)建了一個(gè)`PredictRequest`請求,并將其發(fā)送到TensorFlow Serving。我們還指定了一個(gè)等待10秒鐘的超時(shí)時(shí)間,以確保請求能夠成功地完成。 在這個(gè)例子中,我們發(fā)送了一個(gè)大小為1x784的輸入張量,并將其包含在`PredictRequest`請求中。我們還指定了`signature_name`為`tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY`,這表示我們使用默認(rèn)的模型簽名。 5. 總結(jié) 在本文中,我們介紹了如何使用TensorFlow Serving將機(jī)器學(xué)習(xí)模型部署到生產(chǎn)環(huán)境中。我們首先介紹了如何導(dǎo)出訓(xùn)練好的模型,然后介紹了如何啟動(dòng)TensorFlow Serving。最后,我們介紹了如何使用Python客戶端向TensorFlow Serving發(fā)送預(yù)測請求。 TensorFlow Serving提供了許多有用的功能,如模型版本控制、模型熱更新和模型的灰度發(fā)布等,這使得TensorFlow Serving成為生產(chǎn)環(huán)境中部署機(jī)器學(xué)習(xí)模型的理想選擇。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/130762.html
摘要:大會(huì)以機(jī)器學(xué)習(xí)資料中心和云端安全為主要議題,為未來發(fā)展做戰(zhàn)略規(guī)劃。在年,谷歌開發(fā)了一個(gè)內(nèi)部深度學(xué)習(xí)基礎(chǔ)設(shè)施叫做,這個(gè)設(shè)施允許谷歌人創(chuàng)建更大的神經(jīng)網(wǎng)絡(luò)和擴(kuò)容實(shí)訓(xùn)成千上萬個(gè)核心。 導(dǎo)言 Google近日3月23-24日在美國舊金山舉辦首次谷歌云平臺(tái)(Google Cloud Platform) GCP NEXT大會(huì),參會(huì)人數(shù)超過2000人。GCP NEXT大會(huì)以機(jī)器學(xué)習(xí)、資料中心和云端安全...
摘要:從實(shí)驗(yàn)到生產(chǎn),簡單快速部署機(jī)器學(xué)習(xí)模型一直是一個(gè)挑戰(zhàn)。總結(jié)上面我們快速實(shí)踐了使用和部署機(jī)器學(xué)習(xí)服務(wù)的過程,可以看到,提供了非常方便和高效的模型管理,配合,可以快速搭建起機(jī)器學(xué)習(xí)服務(wù)。 從實(shí)驗(yàn)到生產(chǎn),簡單快速部署機(jī)器學(xué)習(xí)模型一直是一個(gè)挑戰(zhàn)。這個(gè)過程要做的就是將訓(xùn)練好的模型對外提供預(yù)測服務(wù)。在生產(chǎn)中,這個(gè)過程需要可重現(xiàn),隔離和安全。這里,我們使用基于Docker的TensorFlow Se...
閱讀 3032·2023-04-25 20:22
閱讀 3345·2019-08-30 11:14
閱讀 2599·2019-08-29 13:03
閱讀 3187·2019-08-26 13:47
閱讀 3230·2019-08-26 10:22
閱讀 1276·2019-08-23 18:26
閱讀 622·2019-08-23 17:16
閱讀 1919·2019-08-23 17:01