亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

tensorflow2.0保存和恢復模型3種方法

發布時間:2020-08-27 05:11:30 來源:腳本之家 閱讀:296 作者:李宜君 欄目:開發技術

方法1:只保存模型的權重和偏置

這種方法不會保存整個網絡的結構,只是保存模型的權重和偏置,所以在后期恢復模型之前,必須手動創建和之前模型一模一樣的模型,以保證權重和偏置的維度和保存之前的相同。

tf.keras.model類中的save_weights方法和load_weights方法,參數解釋我就直接搬運官網的內容了。

save_weights(
 filepath,
 overwrite=True,
 save_format=None
)

Arguments:

filepath: String, path to the file to save the weights to. When saving in TensorFlow format, this is the prefix used for checkpoint files (multiple files are generated). Note that the '.h6' suffix causes weights to be saved in HDF5 format.

overwrite: Whether to silently overwrite any existing file at the target location, or provide the user with a manual prompt.

save_format: Either 'tf' or 'h6'. A filepath ending in '.h6' or '.keras' will default to HDF5 if save_format is None. Otherwise None defaults to 'tf'.

load_weights(
 filepath,
 by_name=False
)

實例1:

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import datasets, layers, optimizers
 
# step1 加載訓練集和測試集合
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
 
 
# step2 創建模型
def create_model():
 return tf.keras.models.Sequential([
 tf.keras.layers.Flatten(input_shape=(28, 28)),
 tf.keras.layers.Dense(512, activation='relu'),
 tf.keras.layers.Dropout(0.2),
 tf.keras.layers.Dense(10, activation='softmax')
 ])
model = create_model()
 
# step3 編譯模型 主要是確定優化方法,損失函數等
model.compile(optimizer='adam',
  loss='sparse_categorical_crossentropy',
  metrics=['accuracy'])
 
# step4 模型訓練 訓練一個epochs
model.fit(x=x_train,
  y=y_train,
  epochs=1,
  )
 
# step5 模型測試
loss, acc = model.evaluate(x_test, y_test)
print("train model, accuracy:{:5.2f}%".format(100 * acc))
 
# step6 保存模型的權重和偏置
model.save_weights('./save_weights/my_save_weights')
 
# step7 刪除模型
del model
 
# step8 重新創建模型
model = create_model()
model.compile(optimizer='adam',
  loss='sparse_categorical_crossentropy',
  metrics=['accuracy'])
 
# step9 恢復權重
model.load_weights('./save_weights/my_save_weights')
 
# step10 測試模型
loss, acc = model.evaluate(x_test, y_test)
print("Restored model, accuracy:{:5.2f}%".format(100 * acc))

train model, accuracy:96.55%

Restored model, accuracy:96.55%

可以看到在模型的權重和偏置恢復之后,在測試集合上同樣達到了訓練之前相同的準確率。

方法2:直接保存整個模型

這種方法會將網絡的結構,權重和優化器的狀態等參數全部保存下來,后期恢復的時候就沒必要創建新的網絡了。

tf.keras.model類中的save方法和load_model方法

save(
 filepath,
 overwrite=True,
 include_optimizer=True,
 save_format=None
)

Arguments:

filepath: String, path to SavedModel or H5 file to save the model.

overwrite: Whether to silently overwrite any existing file at the target location, or provide the user with a manual prompt.

include_optimizer: If True, save optimizer's state together.

save_format: Either 'tf' or 'h6', indicating whether to save the model to Tensorflow SavedModel or HDF5. The default is currently 'h6', but will switch to 'tf' in TensorFlow 2.0. The 'tf' option is currently disabled (use tf.keras.experimental.export_saved_model instead).

實例2:

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import datasets, layers, optimizers
 
 
# step1 加載訓練集和測試集合
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
 
 
# step2 創建模型
def create_model():
 return tf.keras.models.Sequential([
 tf.keras.layers.Flatten(input_shape=(28, 28)),
 tf.keras.layers.Dense(512, activation='relu'),
 tf.keras.layers.Dropout(0.2),
 tf.keras.layers.Dense(10, activation='softmax')
 ])
model = create_model()
 
# step3 編譯模型 主要是確定優化方法,損失函數等
model.compile(optimizer='adam',
  loss='sparse_categorical_crossentropy',
  metrics=['accuracy'])
 
# step4 模型訓練 訓練一個epochs
model.fit(x=x_train,
  y=y_train,
  epochs=1,
  )
 
# step5 模型測試
loss, acc = model.evaluate(x_test, y_test)
print("train model, accuracy:{:5.2f}%".format(100 * acc))
 
# step6 保存模型的權重和偏置
model.save('my_model.h6') # creates a HDF5 file 'my_model.h6'
 
# step7 刪除模型
del model # deletes the existing model
 
 
# step8 恢復模型
# returns a compiled model
# identical to the previous one
restored_model = tf.keras.models.load_model('my_model.h6')
 
# step9 測試模型
loss, acc = restored_model.evaluate(x_test, y_test)
print("Restored model, accuracy:{:5.2f}%".format(100 * acc))

train model, accuracy:96.94%

Restored model, accuracy:96.94%

方法3:使用tf.keras.callbacks.ModelCheckpoint方法在訓練過程中保存模型

該方法繼承自tf.keras.callbacks類,一般配合mode.fit函數使用

以上這篇tensorflow2.0保存和恢復模型3種方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邵武市| 乌恰县| 漳平市| 灌阳县| 安平县| 黑河市| 洪泽县| 措勤县| 宁乡县| 鹰潭市| 德安县| 拜城县| 闻喜县| 民县| 德保县| 墨江| 连江县| 竹溪县| 铜川市| 宁夏| 昆明市| 白朗县| 阿瓦提县| 东阳市| 崇义县| 南平市| 永济市| 藁城市| 灵武市| 紫金县| 宜阳县| 鄂尔多斯市| 沈丘县| 五原县| 六枝特区| 莆田市| 正镶白旗| 阳原县| 宁津县| 玛纳斯县| 蛟河市|