日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tensorlfow.saved_model的使用

發布時間:2025/3/19 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tensorlfow.saved_model的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
import tensorflow as tf from tensorflow import saved_model as sm model_dir = '/home/test/070807_model' # 首先定義一個極其簡單的計算圖 X = tf.placeholder(tf.float32, shape=(3, ),name="input") scale = tf.Variable([10, 11, 12], dtype=tf.float32,name="w") y = tf.multiply(X, scale,name="output") #X = tf.placeholder(tf.float32, shape=(3, )) #scale = tf.Variable([10, 11, 12], dtype=tf.float32) #y = tf.multiply(X, scale) # 在會話中運行 with tf.Session() as sess:sess.run(tf.initializers.global_variables())value = sess.run(y, feed_dict={X: [1., 2., 3.]})print(value)# 準備存儲模型path = model_dirbuilder = sm.builder.SavedModelBuilder(path)# 構建需要在新會話中恢復的變量的 TensorInfo protobufX_TensorInfo = sm.utils.build_tensor_info(X)scale_TensorInfo = sm.utils.build_tensor_info(scale)y_TensorInfo = sm.utils.build_tensor_info(y)# 構建 SignatureDef protobufSignatureDef = sm.signature_def_utils.build_signature_def(inputs={'X': X_TensorInfo, 'w': scale_TensorInfo},outputs={'y': y_TensorInfo},method_name='test')# 將 graph 和變量等信息寫入 MetaGraphDef protobuf# 這里的 tags 里面的參數和 signature_def_map 字典里面的鍵都可以是自定義字符串,TensorFlow 為了方便使用,不在新地方將自定義的字符串忘記,可以使用預定義的這些值builder.add_meta_graph_and_variables(sess, tags=[sm.tag_constants.TRAINING], signature_def_map={sm.signature_constants.CLASSIFY_INPUTS: SignatureDef}) # 將 MetaGraphDef 寫入磁盤builder.save()

[10. 22. 36.]
INFO:tensorflow:No assets to save.
INFO:tensorflow:No assets to write.
INFO:tensorflow:SavedModel written to: /home/test/070807_model/saved_model.pb

?

import tensorflow as tf from tensorflow import saved_model as sm# 需要建立一個會話對象,將模型恢復到其中 with tf.Session() as sess:path = model_dirMetaGraphDef = sm.loader.load(sess, tags=[sm.tag_constants.TRAINING], export_dir=path)# 解析得到 SignatureDef protobufSignatureDef_d = MetaGraphDef.signature_defSignatureDef = SignatureDef_d[sm.signature_constants.CLASSIFY_INPUTS]# 解析得到 3 個變量對應的 TensorInfo protobufX_TensorInfo = SignatureDef.inputs['X']scale_TensorInfo = SignatureDef.inputs['w']y_TensorInfo = SignatureDef.outputs['y']# 解析得到具體 Tensor# .get_tensor_from_tensor_info() 函數中可以不傳入 graph 參數,TensorFlow 自動使用默認圖X = sm.utils.get_tensor_from_tensor_info(X_TensorInfo, sess.graph)scale = sm.utils.get_tensor_from_tensor_info(scale_TensorInfo, sess.graph)y = sm.utils.get_tensor_from_tensor_info(y_TensorInfo, sess.graph)print(sess.run(scale))print(sess.run(y, feed_dict={X: [3., 2., 1.]}))

INFO:tensorflow:Restoring parameters from /home/test/070807_model/variables/variables
[10. 11. 12.]
[30. 22. 12.]

這里的"x","w","y"需要與build_signature_def定義有關,通過簽名來定義id;與前面訓練推理部分完全獨立;

print(X_TensorInfo.name) print(scale_TensorInfo.name) print(y_TensorInfo.name)

input_1:0
w_1:0
output_1:0

轉載自:https://www.cnblogs.com/mbcbyq-2137/p/10044837.html

?

個人使用心得:Input值為placeholder,output即為需要輸出的值;output會保存所有對應的值,包括神經網絡權重等;等同于sess.run需要輸入啥,就Input啥;

總結

以上是生活随笔為你收集整理的tensorlfow.saved_model的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。