4.5. 总结

  • 为了兼顾编程的灵活性和计算的高效性,设计了基于计算图的机器学习框架。

  • 计算图的基本数据结构是张量,基本运算单元是算子。

  • 计算图可以表示机器学习模型的计算逻辑和状态,利用计算图分析图结构并进行优化。

  • 计算图是一个有向无环图,图中算子间可以存在直接依赖和间接依赖关系,或者相互关系独立,但不可以出现循环依赖关系。

  • 可以利用控制流来改变数据在计算图中的流向,常用的控制流包括条件控制和循环控制。

  • 计算图的生成可以分为静态生成和动态生成两种方式。

  • 静态图计算效率高,内存使用效率高,但调试性能较差,可以直接用于模型部署。

  • 动态图提供灵活的可编程性和可调试性,可实时得到计算结果,在模型调优与算法改进迭代方面具有优势。

  • 利用计算图和算子间依赖关系可以解决模型中的算子执行调度问题。

  • 根据计算图可以找到相互独立的算子进行并发调度,提高计算的并行性。而存在依赖关系的算子则必须依次调度执行。

  • 计算图的训练任务可以使用同步或者异步机制,异步能够有效提高硬件使用率,缩短训练时间。

4.6. 扩展阅读