github博客傳送門
csdn博客傳送門python
import keras import os import tensorflow as tf from tensorflow.python.util import compat from keras import backend as K def export_savedmodel(model): ''' 傳入keras model會自動保存爲pb格式 ''' model_path = "model/" # 模型保存的路徑 model_version = 0 # 模型保存的版本 # 從網絡的輸入輸出建立預測的簽名 model_signature = tf.saved_model.signature_def_utils.predict_signature_def( inputs={'input': model.input}, outputs={'output': model.output}) # 使用utf-8編碼將 字節或Unicode 轉換爲字節 export_path = os.path.join(compat.as_bytes(model_path), compat.as_bytes(str(model_version))) # 將保存路徑和版本號join builder = tf.saved_model.builder.SavedModelBuilder(export_path) # 生成"savedmodel"協議緩衝區並保存變量和模型 builder.add_meta_graph_and_variables( # 將當前元圖添加到savedmodel並保存變量 sess=K.get_session(), # 返回一個 session 默認返回tf的sess,不然返回keras的sess,二者都沒有將建立一個全新的sess返回 tags=[tf.saved_model.tag_constants.SERVING], # 導出模型tag爲SERVING(其餘可選TRAINING,EVAL,GPU,TPU) clear_devices=True, # 清除設備信息 signature_def_map={ # 簽名定義映射 tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY: # 默認服務簽名定義密鑰 model_signature # 網絡的輸入輸出策建立預測的簽名 }) builder.save() # 將"savedmodel"協議緩衝區寫入磁盤. print("save model pb success ...") model = keras.models.load_model('model_data/weight.h5') # 加載已訓練好的.h5格式的keras模型 export_savedmodel(model) # 將模型傳入保存模型的方法內,模型保存成功.
傳入輸出變量在outputs={"output_name1": 網絡輸出變量, "output_name2": 網絡輸出變量}git
tf.saved_model.simple_save(sess, "./model", inputs={"myInput": x}, # input_name可自定義,編碼客戶端時對應便可 outputs={"myOutput": y})
variables/ variables.data-*****-of-***** variables.index saved_model.pb
print_r('點個贊吧'); var_dump('點個贊吧'); NSLog(@"點個贊吧!") System.out.println("點個贊吧!"); console.log("點個贊吧!"); print("點個贊吧!"); printf("點個贊吧!\n"); cout << "點個贊吧!" << endl; Console.WriteLine("點個贊吧!"); fmt.Println("點個贊吧!") Response.Write("點個贊吧"); alert(’點個贊吧’)