ModuleDict¶
-
class
torch.nn.
ModuleDict
(modules: Optional[Mapping[str, torch.nn.modules.module.Module]] = 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 allModule
methods.ModuleDict
is an ordered dictionary that respectsthe order of insertion, and
in
update()
, the order of the mergedOrderedDict
or anotherModuleDict
(the argument toupdate()
).
Note that
update()
with other unordered mapping types (e.g., Python’s plaindict
) does not preserve the order of the merged mapping.- Parameters
modules (iterable, optional) – a mapping (dictionary) of (string: module) or an iterable of key-value pairs of type (string, module)
Example:
class MyModule(nn.Module): def __init__(self): super(MyModule, self).__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
-
items
() → Iterable[Tuple[str, torch.nn.modules.module.Module]][source]¶ Return an iterable of the ModuleDict key/value pairs.
-
pop
(key: str) → torch.nn.modules.module.Module[source]¶ Remove key from the ModuleDict and return its module.
- Parameters
key (string) – key to pop from the ModuleDict
-
update
(modules: Mapping[str, torch.nn.modules.module.Module]) → None[source]¶ Update the
ModuleDict
with the key-value pairs from a mapping or an iterable, overwriting existing keys.Note
If
modules
is anOrderedDict
, aModuleDict
, or an iterable of key-value pairs, the order of new elements in it is preserved.