megengine.module.Sequential¶
- class Sequential(*args, **kwargs)[源代码]¶
一个序列容器。多个模块会按在构造函数中传入的顺序加到该容器中。或者,也可以使用模块组成的有序字典来存入容器。
实际案例
import numpy as np import megengine as mge import megengine.module as M import megengine.functional as F from collections import OrderedDict batch_size = 64 data = mge.tensor(np.zeros((batch_size, 28 * 28)), dtype=np.float32) label = mge.tensor(np.zeros(batch_size,), dtype=np.int32) net0 = M.Sequential( M.Linear(28 * 28, 320), M.Linear(320, 10) ) pred0 = net0(data) modules = OrderedDict() modules["fc0"] = M.Linear(28 * 28, 320) modules["fc1"] = M.Linear(320, 10) net1 = M.Sequential(modules) pred1 = net1(data)
属性。
方法
apply
(fn)对当前模块中的所有模块应用函数
fn
,包括当前模块本身。buffers
([recursive])返回该模块中对于buffers的一个可迭代对象。
children
(**kwargs)返回一个可迭代对象,可遍历所有属于当前模块的直接属性的子模块。
disable_quantize
([value])设置
module
的quantize_diabled
属性,并返回module
。eval
()当前模块中所有模块的
training
属性(包括自身)置为False
,并将其切换为推理模式。forward
(inp)load_state_dict
(state_dict[, strict])加载一个参数字典,这个字典通常使用
state_dict
得到。modules
(**kwargs)返回一个可迭代对象,可以遍历当前模块中的所有模块,包括其本身。
named_buffers
([prefix, recursive])返回可遍历模块中 key 与 buffer 的键值对的可迭代对象,其中
key
为从该模块至 buffer 的点路径(dotted path)。named_children
(**kwargs)返回可迭代对象,可以遍历属于当前模块的直接属性的所有子模块(submodule)与键(key)组成的”key-submodule”对,其中'key'是子模块对应的属性名。
named_modules
([prefix])返回可迭代对象,可以遍历当前模块包括自身在内的所有其内部模块所组成的key-module键-模块对,其中'key'是从当前模块到各子模块的点路径(dotted path)。
named_parameters
([prefix, recursive])返回一个可迭代对象,可以遍历当前模块中key与
Parameter
组成的键值对。其中key
是从模块到Parameter
的点路径(dotted path)。named_tensors
([prefix, recursive])Returns an iterable for key tensor pairs of the module, where
key
is the dotted path from this module to the tensor.parameters
([recursive])返回一个可迭代对象,遍历当前模块中的所有
Parameter
register_forward_hook
(hook)给模块输出注册一个回调函数。
给模块输入注册一个回调函数。
replace_param
(params, start_pos[, seen])Replaces module's parameters with
params
, used byParamPack
tostate_dict
([rst, prefix, keep_var])tensors
([recursive])Returns an iterable for the
Tensor
of the module.train
([mode, recursive])当前模块中所有模块的
training
属性(包括自身)置为mode
。将所有参数的梯度置0。