tensorflow - TensorFlow 自动混合精度 fp16 比官方 resnet 上的 fp32 慢
问题描述
我正在尝试使用来自https://github.com/tensorflow/models/blob/master/official/resnet/estimator_benchmark.py#L191的官方 ResNet 模型基准来试验tensorflow-gpu==1.14.0rc0
. 我在 2080 Ti、驱动程序 410.78、CUDA 10、Ubuntu 上运行。
我进行了以下更改,以帮助确保比较快速且一目了然:
- 将 epoch 减少到 10 个。
- 为运行删除了 2 倍大的批量大小,
tweaked
以便所有内容都在相同数量的样本上进行训练。 - 将检查点设置为仅在训练完成后发生一次。
- 将培训切换为使用 CIFAR-10,因为我已将其下载到本地磁盘上。
我在日志中看到了这一点,这对我来说意味着 AMP 处于活动状态:
2019-06-03 16:08:40.976829: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1767] Running auto_mixed_precision graph optimizer
2019-06-03 16:08:40.977057: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:40.985402: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:40.986858: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:40.987745: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:40.996781: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:41.001948: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:41.003208: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:41.004589: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:41.005981: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1241] No whitelist ops found, nothing to do
2019-06-03 16:08:41.511761: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1767] Running auto_mixed_precision graph optimizer
2019-06-03 16:08:41.527751: I tensorflow/core/grappler/optimizers/auto_mixed_precision.cc:1723] Converted 529/2910 nodes to float16 precision using 3 cast(s) to float16 (excluding Const and Variable casts)
但实际运行时间较慢:
我该怎么做才能看到性能改进?
解决方案
推荐阅读
- ajax - ajax laravel获取属于select中成绩的值
- azure-logic-apps - 逻辑应用触发器“发生资源事件时”不起作用
- docker - 在 Docker 容器上安装依赖项 - Airflow
- python - 计算字典字典中的增量
- systemd - 为什么在 systemd 覆盖中的另一个 ExecStart=/new/value 之前使用 ExecStart= (没有值)?
- swift - Swift 5.5 并发:创建具有自定义错误类型的任务
- sql - SQL:在结果中显示匹配的 ANY 值
- docker - 在 VScode 开发容器的文件夹中安装 requirements.txt
- javascript - 如何使用 javascript 按类对元素进行排序?
- http - 如果我的网站的状态代码为 200 (UP) 时会发出警报的监控工具