Operater design
Created by: jacquesqiao
refs: https://github.com/PaddlePaddle/Paddle/pull/2555
目前的Paddle使用的是layer based计算方式,每个layer包含一个forward,backward,而且每个layer需要保存数据(matrix/argument)和计算的中间状态,这样很多计算的部分难以单独抽离出来。
重构的主要目的在于
:
- 采用更细粒度的计算单位operator,例如 add/mul等,同时也可以实现一些更高层次的op,比如 fc_op
- op更纯粹的用于计算,减少对数据和中间状态的依赖。
- op和gradop分开实现,需要net中自动添加相关的op