You need to sign in or sign up before continuing.
如何从GradientMachine中获取每一层的输出?
Created by: reyoung
Paddle的GradientMachine包含了多个Neural Network。之所以包含多个NeuralNetwork的原因是:
- Paddle在单机运行时,实际上是多设备数据并行的方式做训练。所以,对不同的设备,都会有一个NeuralNetwork
- Paddle在RNN实现时,实际上对于RNN每一个时间步,都是一个子NeuralNetwork。
所以,如果要获得某一个Layer的输出(Activation)。那么就需要遍历一个GradientMachine中包含的所有Neural Network。再从其中获得这个层的输出。
所以我们是不是应该给GradientMachine添加一个遍历所有子NeuralNetwork的接口?
例如:
class GradientMachine {
public:
void accessSubGradientMachine(const std::function<void(const GradientMachine&)>& callback);
}
术语表
- GradientMachine: Paddle用来计算forward和backward的统一接口。可以处理单机多GPU,多CPU的数据并行问题
- NeuralNetwork: Paddle在某个设备上实际的执行计算任务的对象。