當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。