我正在使用Keras(与Theano一起)训练我的CNN模型。 有谁知道如何在我的C ++应用程序中使用它吗? 有人尝试过类似的事情吗? 我想编写一些Python代码,以生成具有网络功能的C ++代码 - 对此有什么建议吗?
我在这里找到了一个类似的问题如何在C ++中使用Tensorflow Keras模型,但没有答案。
我正在使用Keras(与Theano一起)训练我的CNN模型。 有谁知道如何在我的C ++应用程序中使用它吗? 有人尝试过类似的事情吗? 我想编写一些Python代码,以生成具有网络功能的C ++代码 - 对此有什么建议吗?
我在这里找到了一个类似的问题如何在C ++中使用Tensorflow Keras模型,但没有答案。
我发现自己处于类似的情况,需要在C++中支持顺序Keras模型的前向传递,还需要支持使用功能API构建的更复杂的模型。
因此,我编写了一个名为frugally-deep的新库。您可以在GitHub上找到它,并且它是在MIT许可下发布的:https://github.com/Dobiasd/frugally-deep
除了支持许多常见的层类型外,它还可以跟上(有时甚至超过)单个CPU上TensorFlow的性能。您可以在repo中找到一些常见模型的最新基准结果。
通过自动测试,frugally-deep保证在C++中使用它的模型的输出与在Python中使用Keras运行的输出完全相同。
tensorflow.keras
训练的模型? - off99555from 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'))
我有一个类似的需求——我想在C++应用程序中嵌入Keras模型——于是决定编写自己的库:Kerasify。
Kerasify的设计目标:
示例代码,单元测试等详见github链接。 它并没有完全完成,只支持我使用的Keras函数的狭窄子集,但稍加努力即可扩展。
如果您想使用与bazel不同的编译器(例如g++),可以按照这个很棒的教程进行操作:
http://tuatini.me/building-tensorflow-as-a-standalone-project/