当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python mxnet.gluon.Block用法及代码示例


用法:

class mxnet.gluon.Block(prefix=None, params=None)

参数

  • prefix(str) - 前缀就像一个名称空间。在父块中创建的所有子块mxnet.gluon.Block.name_scope名称中将包含父块的前缀。请参阅命名教程有关前缀和命名的更多信息。
  • params(ParameterDict or None) - ParameterDict 用于与新的 Block 共享权重。例如,如果您希望 dense1 共享 dense0 的权重,您可以执行以下操作:
    dense0 = nn.Dense(20)
    dense1 = nn.Dense(20, params=dense0.collect_params())

基础:object

所有神经网络层和模型的基类。你的模型应该继承这个类。

Block 可以递归嵌套在树结构中。您可以创建和分配子 Block 作为常规属性:

from mxnet.gluon import Block, nn
from mxnet import ndarray as F

class Model(Block):
    def __init__(self, **kwargs):
        super(Model, self).__init__(**kwargs)
        # use name_scope to give child Blocks appropriate names.
        with self.name_scope():
            self.dense0 = nn.Dense(20)
            self.dense1 = nn.Dense(20)

    def forward(self, x):
        x = F.relu(self.dense0(x))
        return F.relu(self.dense1(x))

model = Model()
model.initialize(ctx=mx.cpu(0))
model(F.zeros((10, 10), ctx=mx.cpu(0)))

属性

name

这个 Block 的名称,最后没有 ‘_’。

params

返回此 Block 的参数字典(不包括其子参数)。

prefix

Block 的前缀。

以这种方式分配的子 Block 将被注册并且 collect_params() 将递归地收集它们的参数。您还可以使用 register_child() 手动注册子块。

相关用法


注:本文由纯净天空筛选整理自apache.org大神的英文原创作品 mxnet.gluon.Block。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。