快捷方式

ModuleDict

class torch.nn.ModuleDict(modules=None)[来源][来源]

将子模块保存在一个字典中。

ModuleDict 可以像常规 Python 字典一样进行索引,但它包含的模块已正确注册,并且对所有 Module 方法可见。

ModuleDict 是一个有序字典,遵循

  • 插入顺序,以及

  • update() 中,合并的 OrderedDictdict(从 Python 3.6 开始)或另一个 ModuleDictupdate() 的参数)的顺序。

请注意,使用其他无序映射类型(例如,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 键值对的可迭代对象。

返回类型

Iterable[tuple[str, torch.nn.modules.module.Module]]

keys()[来源][来源]

返回 ModuleDict 键的可迭代对象。

返回类型

Iterable[str]

pop(key)[来源][来源]

从 ModuleDict 中移除键并返回其模块。

参数

key (str) – 要从 ModuleDict 中弹出的键

返回类型

模块

update(modules)[来源][来源]

使用来自映射的键值对更新 ModuleDict,覆盖现有键。

注意

如果 modules 是一个 OrderedDict、一个 ModuleDict 或一个键值对可迭代对象,则保留其中新元素的顺序。

参数

modules (iterable) – 一个从 string 到 Module 的映射(字典),或一个类型为(string, Module)的键值对可迭代对象

values()[来源][来源]

返回 ModuleDict 值的可迭代对象。

返回类型

Iterable[Module]

文档

查阅 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获得问题解答

查看资源