У меня есть модель TensorFlow keras, которая выглядит следующим образом:
model = tf.keras.Sequential([
feature_layer,
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(
6, kernel_regularizer=l2(0.01), activation=tf.nn.softmax
)
])
model.compile(loss='squared_hinge',
optimizer='adadelta',
metrics=['accuracy'])
Я сохраняю ее в формате, обслуживаемом с помощью TensorFlow Serving, со следующим кодом и входными данными:
tf.saved_model.simple_save(
keras.backend.get_session(),
export_path,
inputs=model.inputs,
outputs={t.name:t for t in model.outputs})
#model.inputs:
#{
# 'int1': <tf.Tensor 'int1_5:0' shape=(?,) dtype=int32>,
# 'int2': <tf.Tensor 'int2_5:0' shape=(?,) dtype=int32>,
# 'int3': <tf.Tensor 'int3_5:0' shape=(?,) dtype=int32>,
# 'string1': <tf.Tensor 'string1_5:0' shape=(?,) dtype=string>
#}
#model.outputs:
# [<tf.Tensor 'sequential/Identity:0' shape=(?, 6) dtype=float32>]
Я ожидаю 6 результатов, каждый из которых соответствует классу и их вероятности.Используя model.predict()
, это, кажется, работает нормально: модель возвращает массивы, подобные этому [0.15914398 0.152271 0.18949589 0.14985411 0.17449048 0.1747446 ]
.
Однако модель SavedModel, которую я хочу использовать с обслуживанием TensorFlow, созданным кодом, имеет пустые переменные'папка после генерации, оставляя только файл сохраненный_модель.pb.Когда я запрашиваю модель с сохраненной_моделью_кли, я получаю следующее:
RuntimeError: The Session graph is empty. Add operations to the graph before calling run().
Почему это так и как я могу получить желаемое поведение?Спасибо!