评价此页

ModuleDict#

class torch.nn.ModuleDict(modules=None)[source]#

Holds submodules in a dictionary.

ModuleDict can be indexed like a regular Python dictionary, but modules it contains are properly registered, and will be visible by all Module methods.

ModuleDict is an ordered dictionary that respects

  • the order of insertion, and

  • in update(), the order of the merged OrderedDict, dict (started from Python 3.6) or another ModuleDict (the argument to update()).

Note that update() with other unordered mapping types (e.g., Python’s plain dict before Python version 3.6) does not preserve the order of the merged mapping.

参数

modules (iterable, optional) – a mapping (dictionary) of (string: module) or an iterable of key-value pairs of type (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()[source]#

Remove all items from the ModuleDict.

items()[source]#

Return an iterable of the ModuleDict key/value pairs.

返回类型

ItemsView[str, Module]

keys()[source]#

Return an iterable of the ModuleDict keys.

返回类型

KeysView[str]

pop(key)[source]#

Remove key from the ModuleDict and return its module.

参数

key (str) – key to pop from the ModuleDict

返回类型

模块

update(modules)[source]#

Update the ModuleDict with key-value pairs from a mapping, overwriting existing keys.

注意

If modules is an OrderedDict, a ModuleDict, or an iterable of key-value pairs, the order of new elements in it is preserved.

参数

modules (iterable) – a mapping (dictionary) from string to Module, or an iterable of key-value pairs of type (string, Module)

values()[source]#

Return an iterable of the ModuleDict values.

返回类型

ValuesView[Module]