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对象。 

 

posted on 2021-12-22 20:45  lexn  阅读(140)  评论(0)    收藏  举报

导航