TensorFlow 2, как сбросить скрытое состояние RNN с сохранением состояния в C API?

#tensorflow2.0 #tensorflow-serving

#tensorflow2.0 #tensorflow-обслуживание

Вопрос:

Я использую C API Tensorflow (v2.3.1) для обслуживания модели (в формате SavedModel), которая содержит уровень GRU с сохранением состояния. Периодически мне нужно сбрасывать скрытые состояния модели. Если бы я работал на Python и Keras, я мог бы добиться этого с помощью tf.keras.Model.reset_states() , но, увы, мне нужно использовать C API.

Моя модель загружается с помощью tensorflow::LoadSavedModel функции, которая предоставляет мне tensorflow::SavedModelBundle объект. Идея, которую я преследую прямо сейчас, состоит в том, чтобы сначала получить доступ к графу модели с помощью bundle.meta_graph_def.mutable_graph_def() . Затем я планирую найти VarHandleOp op на графике, соответствующем скрытому состоянию GRU, и вручную заполнить этот тензор 0s. До сих пор мне не удалось идентифицировать op, и я не нашел способа вручную записывать значения в VarHandleOp объект. На правильном ли я пути? Есть ли другой способ сбросить состояния?

Комментарии:

1. Я также пытался найти решение этой проблемы. Дайте мне знать, если вы найдете решение, пожалуйста