【问题标题】:How to optimize your tensorflow model by using TensorRT?如何使用 TensorRT 优化您的 TensorFlow 模型?
【发布时间】:2020-10-17 21:19:39
【问题描述】:

这些是解决作业的指令吗?

  1. 将您的 TensorFlow 模型转换为 UFF
  2. 使用 TensorRT 的 C++ API 解析您的模型,将其转换为 CUDA 引擎。
  3. TensorRT 引擎会自动优化您的模型并执行步骤 像融合层,将权重转换为 FP16(或 INT8,如果您愿意)和 优化以在 Tensor Core 上运行,等等。

谁能告诉我如何继续这项任务,因为我的笔记本电脑中没有 GPU,是否可以在 google colab 或 AWS 免费帐户中执行此操作。 我必须安装哪些东西或软件包才能在我的笔记本电脑或谷歌 colab 中运行 TensorRT?

【问题讨论】:

    标签: tensorflow deep-learning gpu tensorrt


    【解决方案1】:

    将您的 TensorFlow 模型导出并转换为 .onnx 文件。

    然后,使用onnx-tensorrt这个工具进行CUDA引擎文件转换。

    【讨论】:

      【解决方案2】:

      所以我没有使用.uff,但我使用了.onnx,但据我所知,过程相似。

      根据documentation,使用 TensorFlow,您可以执行以下操作:

      from tensorflow.python.compiler.tensorrt import trt_convert as trt
      converter = trt.TrtGraphConverter(
          input_graph_def=frozen_graph,
          nodes_blacklist=['logits', 'classes'])
      frozen_graph = converter.convert()
      

      在 TensorFlow1.0 中,他们的操作非常简单,TrtGraphConverter 可以选择为 FP16 序列化,例如:

      converter = trt.TrtGraphConverter(
          input_saved_model_dir=input_saved_model_dir,
          max_workspace_size_bytes=(11<32),
          precision_mode=”FP16”,
          maximum_cached_engines=100)
      

      参见preciosion_mode 部分,序列化后,您可以在 TensorRT 上轻松加载网络,一些很好的示例using cpp are here

      很遗憾,您需要一个支持 FP16 的 nvidia gpu,请查看此支持矩阵。

      如果我没记错的话,Google Colab 提供了不支持 FP16 的 Tesla K80 GPU。我不确定 AWS,但我确定免费套餐没有 gpus。

      您最便宜的选择可能是购买大约 90 美元的Jetson Nano,这是一个非常强大的电路板,我相信您将来会使用它。或者你可以租一些 AWS gpu 服务器,但这有点贵,而且设置过程很痛苦。

      祝你好运!

      【讨论】:

        猜你喜欢
        • 2021-05-11
        • 2020-07-13
        • 2019-05-29
        • 2018-05-24
        • 2021-04-12
        • 2020-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多