首页 > 解决方案 > 如何使用 int8 为 Resnet50v1.5 运行 NVIDIA DeepLearningExamples

问题描述

NVIDIA DeepLearningExamples为 Resnet50v1.5 在 float32 和 float16 精度中提供推理基准测试,但在 int8 中不提供,那么之前有没有人尝试在 int8 中运行这些测试?任何有关如何做到这一点的提示和建议将不胜感激。

更新:我正在尝试使用 int8 进行测试,但目前一直在tf.layers.conv2d抱怨类型不匹配,因为它不接受整数类型。

标签: pythontensorflow

解决方案


对于任何感兴趣的人,为了接受整数类型,需要更新一些层。有一些可用的选项:

  • 编写您自己的自定义层(例如 tf.layers.conv2d)以接受整数输入。
  • 用于tf.cast在浮点和整数类型之间转换输入和输出。
  • 将模型导出为某些格式(例如 SavedModel)并使用某些转换工具(例如 TensorRT、TensorFlow Lite)将模型转换为 int8。

因为我需要层本身针对 int8 进行优化,但又不想花时间自己实现它们,所以我选择了最后一个选项。


推荐阅读