我正在尝试保存一个 TensorFlow 模型,其中包括一些标签的后期处理。
给定一些分类标签,我有兴趣训练一个模型(例如, a tf.keras.Sequential),其中我以前对标签应用了 One-hot 编码。这是模型的样子:
model = tf.keras.Sequential([
tf.keras.layers.DenseFeatures(transform_features),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(1)
])
model.compile(loss='categorical_crossentropy',optimizer='adam')
history = model.fit(train_data, epochs=5)
Run Code Online (Sandbox Code Playgroud)
其中transform_features是 的列表tf.feature_columns,train_data是tf.data.Dataset包含训练数据的(train_X,train_y)。
一旦训练了模型,我想应用一些后期处理。我想将这个后处理添加到一个新的(或相同的)TensorFlow 模型中,这样当我要求对这个模型进行预测时(例如在 BigQuery 中使用导入的 TensorFlow 模型进行预测),它会给我解码的最终标签。
我正在考虑制作第一个模型,如之前所示,训练后,向模型添加以下层:
from tf.keras.layers import Lambda
model.add(Lambda(lambda x: tf.argmax(x, axis=-1)))
Run Code Online (Sandbox Code Playgroud)
但我不知道如何“合并”这两个不同的模型并将它们保存为相同的 TensorFlow SavedModel 格式(使用tf.saved_model.save(model, MODEL_PATH))。有没有什么方法可以让一个云在 Tensorflow 中进行这种后处理?
谢谢