1

如何在不调用 Matlab 的情况下从 C++ 应用经过训练的 Matlab 神经网络?我认为也许可以读取经过训练的网络的所有变量值并将其导出到文件中,然后知道神经网络程序的内部数据处理,C++ 中的函数可以读取所有这些数据(训练结果),以及何时用户介绍他的测试数据,然后该函数给出答案。该函数的签名可能类似于:

double estimate_frequency(<neural_network_config_file>, <user_params>) {
    ...
    return frequency;
}

但这一切都无需调用任何 Matlab dll 或 Matlab 程序。我认为评估过程比训练过程更简单。

这可能吗?

谢谢!

4

1 回答 1

3

当然有可能——神经网络是清晰的数学模型。您所需要的只是一个兼容的表示,您在其中存储了:

  • 网络拓扑(特定层中的神经元数量)
  • 网络权重(所有神经元之间)
  • 网络激活函数(每个神经元)

就这样。确切的解决方案取决于您用于神经网络的 matlab 库。有一个称为 PMML 的预测模型的“标准”,可以由例如 Weka 库加载。无论哪种方式 - 它都很容易操作,因此您也可以通过简单地将所有数字存储在文本文件中并在 C++ 中模拟网络来手动实现它(因为神经网络的“前进”阶段只是几行代码 -训练部分很长)。

于 2013-09-03T16:09:41.827 回答