我真的很渴望开始使用谷歌在c++中的新Tensorflow库。网站和文档在如何构建项目的c++ API方面真的不清楚,我不知道从哪里开始。
是否有更有经验的人可以通过发现和分享使用tensorflow的c++ API的指南来帮助您?
我真的很渴望开始使用谷歌在c++中的新Tensorflow库。网站和文档在如何构建项目的c++ API方面真的不清楚,我不知道从哪里开始。
是否有更有经验的人可以通过发现和分享使用tensorflow的c++ API的指南来帮助您?
当前回答
如果你不想自己构建Tensorflow,而且你的操作系统是Debian或Ubuntu,你可以下载带有Tensorflow C/ c++库的预构建包。这个发行版可以用于CPU的C/ c++推理,GPU支持不包括在内:
https://github.com/kecsap/tensorflow_cpp_packaging/releases
这里有一些关于如何在Tensorflow (TFLearn)中冻结检查点的说明,并使用C/ c++ API加载这个模型进行推理:
https://github.com/kecsap/tensorflow_cpp_packaging/blob/master/README.md
注意:我是这个Github项目的开发者。
其他回答
你可以使用这个ShellScript来安装(大多数)它的依赖,克隆,构建,编译和得到所有必要的文件到../ src /包括文件夹:
https://github.com/node-tensorflow/node-tensorflow/blob/master/tools/install.sh
如果你不介意使用CMake,还有tensorflow_cc项目可以为你构建和安装TF c++ API,以及方便的CMake目标,你可以链接到它。项目README包含一个示例和Dockerfiles,您可以轻松地遵循。
我发现使用Tensorflow c++ API的一个替代方案是使用cppflow。
它是一个围绕Tensorflow C API的轻量级c++包装器。你得到非常小的可执行文件,它链接到libtensorflow。已经编译好的文件。还有一些使用的例子,您使用CMAKE而不是Bazel。
如果你想在一个独立的包上使用Tensorflow c++ api,你可能需要tensorflow_cc。还有一个c api版本的tensorflow。所以)构建c++版本,你可以使用:
bazel build -c opt //tensorflow:libtensorflow_cc.so
注1:如果你想添加intrinsic支持,你可以添加这样的标志:——copt=-msse4.2——copt=-mavx
注2:如果你想在你的项目中也使用OpenCV,当同时使用两个库时(tensorflow问题),你应该使用——config=monolithic。
构建库后,需要将其添加到项目中。 要做到这一点,你可以包括以下路径:
tensorflow
tensorflow/bazel-tensorflow/external/eigen_archive
tensorflow/bazel-tensorflow/external/protobuf_archive/src
tensorflow/bazel-genfiles
并将库链接到您的项目:
tensorflow/bazel-bin/tensorflow/libtensorflow_framework.so (unused if you build with --config=monolithic)
tensorflow/bazel-bin/tensorflow/libtensorflow_cc.so
当你构建你的项目时,你还应该指定你的编译器,你将使用c++11标准。
附注:相对于tensorflow版本1.5的路径(您可能需要检查您的版本中是否有任何更改)。
这个链接也帮助我找到了所有这些信息:链接
我们现在在https://github.com/ika-rwth-aachen/libtensorflow_cc上提供了一个预构建的库和Docker镜像,方便TensorFlow c++ API的安装和使用
我们提供了预构建的libtensorflow_cc。因此,将附带的头文件作为一个命令安装deb-package。 我们提供了一个基于官方TensorFlow Docker镜像的预构建Docker镜像。我们的Docker镜像同时安装了TensorFlow Python和TensorFlow c++。
通过运行示例应用程序自己尝试一下:
git clone https://github.com/ika-rwth-aachen/libtensorflow_cc.git && \
cd libtensorflow_cc && \
docker run --rm \
--volume $(pwd)/example:/example \
--workdir /example \
rwthika/tensorflow-cc:latest \
./build-and-run.sh
虽然我们目前只支持运行Ubuntu的x86_64机器,但将来可以很容易地扩展到其他操作系统和平台。除了一些例外,TensorFlow从2.0.0到2.9.2的所有版本都可用,2.10.0即将推出。
如果你想使用TensorFlow c++ API在c++中加载、检查和运行保存的模型和冻结的图形,我们建议你也检查我们的帮助库tensorflow_cpp。