評價此頁

ModuleDict#

class torch.nn.modules.container.ModuleDict(modules=None)[原始碼]#

以字典形式儲存子模組。

ModuleDict 可以像普通 Python 字典一樣進行索引,但其中包含的模組會被正確註冊,並對所有 Module 方法可見。

ModuleDict 是一個**有序**字典,它會保留

  • 插入的順序,並且

  • update() 方法中,會保留合併的 OrderedDictdict(從 Python 3.6 開始)或另一個 ModuleDict(作為 update() 的引數)的順序。

請注意,使用其他無序對映型別(例如,Python 3.6 版本之前的普通 dict)呼叫 update() 不會保留合併對映的順序。

引數

modules (iterable, optional) – 一個對映(字典),包含 (string: module) 對,或者一個包含 (string, module) 型別鍵值對的可迭代物件。

示例

class MyModule(nn.Module):
    def __init__(self) -> None:
        super().__init__()
        self.choices = nn.ModuleDict(
            {"conv": nn.Conv2d(10, 10, 3), "pool": nn.MaxPool2d(3)}
        )
        self.activations = nn.ModuleDict(
            [["lrelu", nn.LeakyReLU()], ["prelu", nn.PReLU()]]
        )

    def forward(self, x, choice, act):
        x = self.choices[choice](x)
        x = self.activations[act](x)
        return x
clear()[原始碼]#

從 ModuleDict 中移除所有項。

items()[原始碼]#

返回 ModuleDict 鍵/值對的可迭代物件。

返回型別

ItemsView[str, Module]

keys()[原始碼]#

返回 ModuleDict 鍵的可迭代物件。

返回型別

KeysView[str]

pop(key)[原始碼]#

從 ModuleDict 中移除鍵並返回其模組。

引數

key (str) – 要從 ModuleDict 中移除的鍵。

返回型別

模組

update(modules)[原始碼]#

使用來自對映的鍵值對更新 ModuleDict,並覆蓋現有鍵。

注意

如果 modulesOrderedDictModuleDict 或鍵值對的可迭代物件,則其中新元素的順序將得到保留。

引數

modules (iterable) – 一個從字串到 Module 的對映(字典),或者一個包含 (string, Module) 型別鍵值對的可迭代物件。

values()[原始碼]#

返回 ModuleDict 值(modules)的可迭代物件。

返回型別

ValuesView[Module]