在Windows上的C ++中使用Tensorflow

时间:2019-01-02 01:50:42

标签: c++ windows tensorflow

我知道有一些在C ++中使用Tensorflow的方法,它们甚至有一个documentation,但是我似乎能够为其提供库。我已经检查过build from source instructions,但它似乎建立了一个pip包,而不是我可以链接到我的项目的库。我还发现了一个tutorial,但是当我尝试使用它时,内存用完了,计算机崩溃了。我的问题是,如何才能真正使C ++库在我的项目上工作?我确实有这些要求,所以我必须在Windows中使用Visual Studio in C ++。我想做的是,如果我能获得一个可以链接的预编译DLL,但我还没有发现这种东西,并且我愿意接受其他选择。

4 个答案:

答案 0 :(得分:0)

我无法发表评论,因此我将其作为答案。 如果您不介意使用Keras,则可以使用软件包frugally deep。我自己也没有看过图书馆,但是我节俭地看了一下,似乎很容易实现。我目前正在尝试使用它,所以我不能保证它会起作用。

答案 1 :(得分:0)

您可以从此处签出Neuro2D:

https://github.com/davidrmiller/neural2d

这是一个神经网络实现,没有任何依赖库(全部从头开始编写)。

答案 2 :(得分:0)

答案似乎是hard:-(

尝试this开始。您可以按照building from source on Windows的最新说明进行操作,直到构建pip包为止。但不要那样做-而是这样做/这些:

public class MyClass {
    public static void main(String args[]) {
      int[] array = {1,25,46,97};

      for (int i : array) {
          System.out.println(i);
      }
    }
}

似乎一切正常。当您尝试使用任何头文件时,问题才真正开始-至少在TF版本> = 2.0的情况下,您可能会遇到编译错误。我尝试过:

  • 构建label_image示例(readme.md文件中的说明)
    • 它可以在Windows上正常运行,这意味着所有标头和源代码都在某个地方
    • 尝试将该源合并到Windows控制台可执行文件中:由于与std :: min和std :: max的冲突(可能是Windows SDK)而导致编译器错误。
  • 将c_api.h包含在Windows控制台应用程序中:无法编译。
  • 包括TF-Lite头文件:无法编译。

如果无法获取要编译的头文件,那么在前两个bazel命令中花费较长的编译时间是没有意义的:-(

您可能有时间投入精力来解决这些错误;我不。在此阶段,Tensorflow缺乏对Windows C ++的足够支持以依赖它,尤其是在商业环境中。我建议改用这些选项:

答案 3 :(得分:0)

我认为最好的选择是使用 cppflow,这是我创建的一个简单的包装器,用于轻松使用 C++ 中的 Tensorflow。

您无需安装任何东西,只需下载 TF C API,并将其放置在您计算机中的某个位置即可。您可以查看 docs 以了解如何操作以及如何使用该库。