Python — VGG16 Keras сохранить модель для экспорта переполнения стека

Я недавно работал над vgg16, чтобы повторно использовать его модели.

в питоне: (керас)

model = applications.VGG16(include_top=False, weights='imagenet')

и все хорошо.

Мне нужно экспортировать эту модель с компиляцией и подгонкой для экспорта j ++ файла c ++.
Как правильно экспортировать модель ThiS в файл h5, чтобы использовать его для экспорта модели?

1

Решение

Один из подходов состоит в том, чтобы преобразовать вашу модель Keras в модель TensorFlow в Python, а затем экспортировать замороженный график в .pb файл. Затем загрузите это в C ++. Я использовал этот кусок кода для экспорта замороженного .pb файл из Кераса.

import tensorflow as tf

from keras import backend as K
from tensorflow.python.framework import graph_util

K.set_learning_phase(0)
model = function_that_returns_your_keras_model()
sess = K.get_session()

output_node_name = "my_output_node" # Name of your output node

with sess as sess:
init_op = tf.global_variables_initializer()
sess.run(init_op)
graph_def = sess.graph.as_graph_def()
output_graph_def = graph_util.convert_variables_to_constants(
sess,
sess.graph.as_graph_def(),
output_node_name.split(","))
tf.train.write_graph(output_graph_def,
logdir="my_dir",
name="my_model.pb",
as_text=False)

Затем вы можете следовать любому учебнику о том, как загрузить .pbфайл в C ++. Для примера этот: https://medium.com/jim-fleming/loading-a-tensorflow-graph-with-the-c-api-4caaff88463f

Keras внедряет переменную learning_phase в граф TensorFlow и, возможно, также другие переменные только для Keras — если я правильно помню, вы должны обязательно удалить их из графика.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]