В настоящее время мы обучаем различные нейронные сети с использованием Keras, что идеально, поскольку он имеет приятный интерфейс и относительно прост в использовании, но мы хотели бы иметь возможность применять их в нашей производственной среде.
К сожалению, производственная среда — C ++, поэтому мы планируем:
К сожалению, я не знаю, как получить доступ к утилитам сохранения TensorFlow из Keras, который обычно сохраняет в HDF5 и JSON. Как сохранить в protobuf?
Если вам не нужно использовать графический процессор в среде, в которой вы развертываете, вы также можете использовать мою библиотеку, которая называется экономно-глубокая. Он доступен на GitHub и опубликован под лицензией MIT: https://github.com/Dobiasd/frugally-deep
экономно-глубокий позволяет запускать проходы по уже обученным моделям Keras непосредственно в C ++ без необходимости связываться с TensorFlow или любым другим бэкэндом.
Это, кажется, ответили в «Keras как упрощенный интерфейс для TensorFlow: учебник», опубликовано Блог Кераса Франсуа Шоле.
Особенно, Раздел II, «Использование моделей Keras с TensorFlow».
Вы можете получить доступ к бэкенду TensorFlow:
import keras.backend.tensorflow_backend as K
Затем вы можете вызвать любую утилиту или функцию TensorFlow, например:
K.tf.ConfigProto
Сохраните вашу модель keras как файл HDF5.
Затем вы можете выполнить преобразование с помощью следующего кода:
from keras import backend as K
from tensorflow.python.framework import graph_util
from tensorflow.python.framework import graph_io
weight_file_path = 'path to your keras model'
net_model = load_model(weight_file_path)
sess = K.get_session()
constant_graph = graph_util.convert_variables_to_constants(sess, sess.graph.as_graph_def(), 'name of the output tensor')
graph_io.write_graph(constant_graph, 'output_folder_path', 'output.pb', as_text=False)
print('saved the constant graph (ready for inference) at: ', osp.join('output_folder_path', 'output.pb'))
Вот мой пример кода, который обрабатывает несколько входных и нескольких выходных случаев:
https://github.com/amir-abdi/keras_to_tensorflow