如何在 Visual Studio 2019 中使用 C++ 保存的模型?

问题描述 投票:0回答:1

首先这是我的环境。

系统信息
操作系统平台和发行版(例如Linux Ubuntu 16.04):Windows10
TensorFlow 安装自(源代码或二进制文件):tensorflow/tensorflow
TensorFlow 版本(使用下面的命令):2.4.0
Python版本:3.7.5
Bazel 版本(如果从源代码编译):3.1.0
GCC/编译器版本(如果从源代码编译):
CUDA/cuDNN 版本:CUDA 11.0.2 / cuDNN8.0.5.39
GPU型号和显存:RTX3090

我编译了tensorflow源并得到'tensorflow.dll'和'tensorflow.lib'。
所以我成功地尝试了下面的代码。

#include <stdio.h>
#include <tensorflow/c/c_api.h>

int main() {
    printf("Hello from TensorFlow C library version %s\n", TF_Version());
    return 0;
}

接下来,我尝试在 python 中保存 h5 预训练模型(saved_model.pb)后加载它。为此需要一个 C++ 标头,但是当我尝试加载它时,vs2019 中出现链接错误。

#include "tensorflow/cc/saved_model/loader.h"

-问题-

  1. 如何设置 Visual Studio 目录(包含、库)以使用 bazel 编译输出? 我不知道要使用什么文件夹、dll、lib 和标头。
  • bazel-bin
  • bazel 出
  • bazel-张量流
  • bazel-测试日志
  1. 我尝试使用“tensorflow/cc/saved_model/loader.h”来使用保存的模型。当我添加所需的标头时,vs2019 一直说链接错误
    fatal error C1083: cannot open include file. 'Eigen/Core': No such file or directory
    所以我手动添加了包含目录的路径。但我收到了这个错误。
    fatal error C1014: too many include files : depth = 1024

    难道是include和library目录路径设置不正确导致的问题?
c++ tensorflow visual-studio-2019
1个回答
0
投票

我发现不需要在代码中添加额外的标头。
但还是没有找到TF c版本的使用手册
以下信息只是我在网上找到的信息的组合。

(我安装了 cuda 和 cudnn 版本,显示在下面链接的底部。) (https://www.tensorflow.org/install/source_windows?hl=ko)

  1. 首先下载tensorflow-gpu c预编译版本 (https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-gpu-windows-x86_64-2.6.0.zip) -> 您可以修改链接中的版本,如 2.4.0.zip。
  2. https://github.com/tensorflow/tensorflow
  3. 下载tensorflow代码
  4. 在 Visual Studio 2019 中创建新项目(我在 2022 年也成功了)。
  5. 在下载的libtensorflow-gpu-windows-x86_64-2.6.0.zip文件中,将include文件夹内的tensorflow文件夹复制到Visual studio项目(cpp文件所在位置)。
  6. 解压从Github下载的tensorflow-master.zip文件。 将文件粘贴到tensorflow-master ensorflo中
© www.soinside.com 2019 - 2024. All rights reserved.