部署模型新的版本

Note

TensorFlow Serving以固定间隔来检查新模型版本,如果找到一个,它将自动优雅地处理过渡。

import utils

# load data
(X_train, y_train), (X_val, y_val), (X_test, y_test) = utils.load_fashion_mnist()
from tensorflow import keras

model = keras.models.load_model("my_mnist_model/")
# 假设我们得到了一个新的模型
model.fit(X_train, y_train, epochs=5)
Epoch 1/5
1719/1719 [==============================] - 3s 2ms/step - loss: 0.3273 - accuracy: 0.8835
Epoch 2/5
1719/1719 [==============================] - 3s 2ms/step - loss: 0.3200 - accuracy: 0.8842
Epoch 3/5
1719/1719 [==============================] - 3s 2ms/step - loss: 0.3133 - accuracy: 0.8874
Epoch 4/5
1719/1719 [==============================] - 3s 2ms/step - loss: 0.3064 - accuracy: 0.8895
Epoch 5/5
1719/1719 [==============================] - 3s 2ms/step - loss: 0.3010 - accuracy: 0.8923
<keras.callbacks.History at 0x7fc0f78aa490>
import os
import tensorflow as tf

model_version = "0002"
model_name = "serve_mnist"
model_path = os.path.join(model_name, model_version)
# 保存好版本2的模型
tf.saved_model.save(model, model_path)
INFO:tensorflow:Assets written to: serve_mnist/0002/assets

Tip

把新版本模型保存到相应位置就大功告成了,TF Serving会自动切换。
若想回滚到版本1,那么删除掉版本2的目录即可。