模型训练:数据预处理和预载入
相对于模型的训练而言,有时候数据的预处理和载入反而是一件更为耗时的工作。为了优化模型的训练流程,有必要对训练的全流程做一个时间上的评测(Profiling),以弄清每一步所耗费的时间,并发现性能上的瓶颈。这一步可以使用 TensorBoard 的评测工具(参考查看 Graph 和 Profile 信息 ),也可以简单地使用 Python 的time库在终端输出每一步所需时间。评测完成后,如果发现瓶
·
相对于模型的训练而言,有时候数据的预处理和载入反而是一件更为耗时的工作。
为了优化模型的训练流程,有必要对训练的全流程做一个时间上的评测(Profiling),以弄清每一步所耗费的时间,并发现性能上的瓶颈。这一步可以使用 TensorBoard 的评测工具(参考 查看 Graph 和 Profile 信息 ),也可以简单地使用 Python 的 time 库在终端输出每一步所需时间。评测完成后,如果发现瓶颈在数据端(例如每一步训练只花费 1 秒,而处理数据就花了 5 秒),我们即需要思考数据端的优化方式。
- 查看 Graph 和 Profile 信息
一般而言,可以通过事先预处理好需要传入模型训练的数据来提高性能,也可以在模型训练的时候并行进行数据的读取和处理。可以参考前文的 使用 tf.data 的并行化策略提高训练流程效率 以了解详情。
更多推荐
所有评论(0)