tensorflow 性能调优相关
程序员文章站
2022-05-03 12:48:50
如何进行优化tensorflow 将极大得加速机器学习模型的训练的时间,下面是一下tensorflow性能调优相关的阅读链接: tensorflow 性能调优:http://d0evi1.com/tensorflow/performance/ (概括的较为完整) 阅读摘要: input pipeli ......
如何进行优化tensorflow 将极大得加速机器学习模型的训练的时间,下面是一下tensorflow性能调优相关的阅读链接:
- tensorflow 性能调优: (概括的较为完整)
阅读摘要:
-
input pipeline 优化:
- 使用 nvidia-smi -l 2 确认一个gpu是否被充分利用;通过gpu 利用率查看瓶颈是否在 input pipeline;
- 生成一个 timeline, 观察等待状态。判断每一阶段的耗时;
- 预估当前训练所需要的吞吐,验证所使用的磁盘,能否支持该吞吐量;
-
cpu 预处理:
- 在cpu上面,进行处理 input pipeline 操作。来进行释放gpu;
-
使用dataset api:
- dataset api 会使用c++多线程机制,会比基于python的queue_runner的开销更低;使用 feed_dict 来进行装载数据将会存在性能问题;
- 针对于数据集进行融合和裁剪,也能已经程度上加快tensorflow 的处理速度,在尽量少损失数据的情况下,减少整个数据集的大小,以提高处理速度;
-
使用大文件:
- 读取大量小文件可以极大影响i/o性能。获取最大的i/o吞吐量的其中一种方法是,将数据预取处理成更大的文件(tfrecord文件)。对于更小数据集,最好的方法是加载整个数据集到内存中。
-
fused ops:
-
fused ops会将多个op结合成单个kernel来提升性能。在tensorflow中有许多fused ops,当可能时xla会创建fused ops来自动提升性能。下面的示例会使用fused ops,可以极大提升性能。
-
- fused batch norm: 没看懂,之前没有使用过,所以不知道如何来进行使用;
- 编译安装:缺省的tensorflow二进制包面向大多数的硬件,以便tensorflow能为所有人所使用。如果使用cpu进行training或inference,推荐使用cpu的所有优化来编译tensorflow。开启当前适合于当前cpu的优化;
-
gpu 优化:
保持更新,内容来源于网络。更多内容请关注 cnblogs.com/xuyaowen;