首页 > 解决方案 > 如何将后处理添加到 Tensorflow 模型中?

问题描述

我正在尝试保存一个 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)

其中transform_features是 的列表tf.feature_columnstrain_datatf.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)))

但我不知道如何“合并”这两个不同的模型并将它们保存为相同的 TensorFlow SavedModel 格式(使用tf.saved_model.save(model, MODEL_PATH))。有没有什么方法可以让一个云在 Tensorflow 中进行这种后处理?

谢谢

标签: tensorflowkeras

解决方案


推荐阅读