MXNET框架基础1-模型构建基本原理
MXNET框架基础1-模型构建基本原理
两种写法
1继承block类来构建模型

1 继承block类
2 传参
0 类中无需定义backward反向求导函数。
3 调用nn.Dense中__call__回调函数
在forward中调用每个网络层执行
4-5-6
mn实例化。6 mn() 会调用 继承自 nn.block的__call__函数,函数中调用4 forward()。
5后面会介绍5 初始化的更详细作用。
方法二 使用sequence
1 sequence 也是nn.Block子类
2 add 添加隐层对象
为了理解sequence原理,先构建一个类似的类
1 add添加隐层实例化对象,本质add在一个order Dict对象中。
2initialize对所有对象初始化
3输入数据,调用了nn.Block的__call__函数
4 __call__函数中带有forward函数
5forward函数里面调用self._children 这个有序字典,有顺序遍历所有实例化对象。
也可以一个类嵌套使用

1嵌套使用sequential,主要由sequential的实例发起。
2add添加 在init中使用了sequential的类
3 调用call时走到sequential的类,forward函数,是遍历有序字典_children,其中这个_children 在实例化nest时候已经存入了sequential的self._children,当外部二次实例化sequential的实例时,这个_children也传了进去。相当于操作的是同一个_children对象。
浙公网安备 33010602011771号