前文已經比較詳細的介紹了tf2.0構建網絡的幾種方式,當模型可以訓練起來之後,可持久化就是下一個目標,保存和加載模型是不可或缺的部分。
Step1:構建一個網絡結構用於測試
import tensorflow as tf
from tensorflow.keras import layers
import numpy as np
model = tf.keras.Sequential()
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))
model.compile(optimizer=tf.keras.optimizers.Adam(0.001),
loss=tf.keras.losses.categorical_crossentropy,
metrics=[tf.keras.metrics.categorical_accuracy])
train_x = np.random.random((1000, 100))
train_y = np.random.random((1000, 10))
val_x = np.random.random((200, 100))
val_y = np.random.random((200, 10))
Step2:啓動訓練並保存模型
model.fit(train_x, train_y, epochs=10, batch_size=100,
validation_data=(val_x, val_y))
model.save_weight(./weight/model) # 保存權重文件 weight文件夾下三個文件
model.save_weight(./weight/model.h5) # 保存權重文件 weight文件夾下h5文件
model.save(all_model.h5) # 保存整個模型
Step3:加載模型測試
model.load_weights('./weight/model')
model.load_weights('./weight/model.h5')
model = tf.keras.models.load_model('all_model.h5')