加载 TensorFlow 模型以使用 C++

问题描述

我想将使用 TensorFlow 创建的机器学习模型加载到使用 JUCE6 制作的 C++ 音频应用程序中。为了在 C++ 中使用 TensorFlow,我使用了 TensorFlow 包装器 CppFlow。我有一个问题,我不知道如何加载模型以在音频流中使用。

Tensorflow 模型加载 cppFlow 如下:

cppflow::model model("path_to_model");

然后我可以像这样在我的音频处理块中使用模型。

auto output = model(input);

这是一个例子:https://github.com/serizba/cppflow/blob/master/examples/load_model/main.cpp

如果我在我的 AudioProcessingBlock 中这样实现它,应用程序会调用 abort() 而没有错误代码并说:调试错误!可能是由于 cpu 溢出,因为模型加载了每个样本 -> 每秒 44k 次。 如果我在我的 preparetoPlay 方法中实现模型加载(调用一次),无论如何我都会把它放在那里,应用程序运行得很好,但我无法访问我的 AudioProcessingBlock 中的模型。因此我不能打电话

auto output = model(input);

.

cppflow::model::model 是一个内联函数

inline model::model(const std::string &filename){
this-> graph = {TF_NewGraph(),TF_DeleteGraph()};
...

完整的实现可以在这里找到,从第 46 行开始:https://github.com/serizba/cppflow/blob/master/include/cppflow/model.h

如何将模型保存在我的类中的私有变量中?所以我可以将模型实例化一次,并在我的应用程序运行时在 AudioProcessingBlock 中使用它。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...