【问题标题】:How to program with C++ API library on Windows using Bazel?如何使用 Bazel 在 Windows 上使用 C++ API 库进行编程?
【发布时间】:2019-05-17 11:25:38
【问题描述】:

我想做什么

首先,我的目标是在 Windows 上使用 Tensorflow C++ API 作为库,这是我项目的一部分,而不是在 Tensorflow 中构建我的项目。

背景

我通过使用 CMake 构建 Tensorflow 实现了这一点。但是,从 Tensorflow 1.10 开始,不推荐使用 CMake 构建,而是建议使用 Bazel。但是the official way to use C++ API 正在使用 Bazel 在 Tensorflow 中构建项目。因此,这种方式对我不利。

我做了什么

为了使用更新版本的 Tensorflow,我一直在尝试使用 Bazel 作为独立库来构建 Tensorflow。

一些维护者表示可以通过在the official tutorial 中将//tensorflow/tools/pip_package:build_pip_package 替换为//tensorflow:libtensorflow_cc.so。但其实我遇到了一些问题,通过阅读this tutorial解决了。现在我已经成功构建了libtensorflow_cc.so

问题是什么

但是,我不知道接下来应该做什么来使用构建的结果。 这正是我的问题。当然没有文档。我只发现了一些不完整的想法,我将展示所有这些想法,试图为您提供更多信息:

一定有人像我一样为类似的问题苦苦挣扎。我希望这个问题可以建立一个解决问题的方法库。

【问题讨论】:

标签: c++ tensorflow dll bazel


【解决方案1】:

问这个问题已经2年多了,新闻是not good:似乎没有足够的Windows技能人员能够提供支持,使用熟悉的标头+库模型将Tensorflow集成到Windows应用程序中.并且 TensorFlow 每周都在进步,这意味着 Windows 支持进一步落后。

在我的评估中,由于文档不足,目前在 Windows 上构建的路径被阻止。正如 OP 所断言的那样,“当然没有文档”并不是那么多,而是稀疏的文档分布在几十个单独的帖子中,每个帖子都随着 Tensorflow 沿着 Windows C++ 以外的路径的持续发展而迅速发展。

我最初向this answer 提供了一个类似的问题,但昨天更新了它并提供了以下建议:

  • Windows 是 Microsoft 产品,因此请注意 Microsoft 在做什么
  • 您可以通过至少 3 种方式在 Windows 上使用 C++ 实现 (ONNX) 模型:
    • Windows ML(使用 Onnx 运行时)
    • Onnx runtime(支持 DirectML 作为执行提供程序)
    • DirectML(微软如何使用显卡来提升性能)

我们没有最新或最好的硬件(例如,我们有英特尔显卡),但我们能够获得基于 Onnx 运行时的解决方案,该解决方案可以在大约 20 毫秒内对 224 x 224 RGB 图像进行分类。我们发现 Windows ML 路径更难处理遗留代码,而且运行速度也更慢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    相关资源
    最近更新 更多