python - 如何使用 int8 为 Resnet50v1.5 运行 NVIDIA DeepLearningExamples
问题描述
NVIDIA DeepLearningExamples为 Resnet50v1.5 在 float32 和 float16 精度中提供推理基准测试,但在 int8 中不提供,那么之前有没有人尝试在 int8 中运行这些测试?任何有关如何做到这一点的提示和建议将不胜感激。
更新:我正在尝试使用 int8 进行测试,但目前一直在tf.layers.conv2d
抱怨类型不匹配,因为它不接受整数类型。
解决方案
对于任何感兴趣的人,为了接受整数类型,需要更新一些层。有一些可用的选项:
- 编写您自己的自定义层(例如 tf.layers.conv2d)以接受整数输入。
- 用于
tf.cast
在浮点和整数类型之间转换输入和输出。 - 将模型导出为某些格式(例如 SavedModel)并使用某些转换工具(例如 TensorRT、TensorFlow Lite)将模型转换为 int8。
因为我需要层本身针对 int8 进行优化,但又不想花时间自己实现它们,所以我选择了最后一个选项。
推荐阅读
- python - 类方法不更新属性
- swift - 如何将节点物理体形设置为边界框
- vim - 如何在vim中禁用鼠标和tracpad?
- rest - 代理 K8S 应用程序委托对来自其他 pod 的请求进行身份验证
- sql - 无法查看一个数据库
- android - 使用意图类型 application/vnd.android.package-archive 时,包安装程序未打开文件
- python - Python DF:如何根据条件为一行选择多列中的值?
- html - 如何将数据从 Angular 中的 datalist 发送到 Rest api
- mysql - DATE_ADD(LAST_DAY(DATE_SUB(NOW(), INTERVAL 2 MONTH)), INTERVAL 1 DAY)
- java - 如何使用构建器模拟内部变量