ParameterDict#
- class torch.nn.modules.container.ParameterDict(parameters=None)[source]#
以字典形式儲存引數。
ParameterDict 可以像普通 Python 字典一樣進行索引,但其中包含的 Parameters 會被正確註冊,並且對所有 Module 方法可見。其他物件將被視為普通 Python 字典進行處理。
ParameterDict是一個有序字典。使用其他無序對映型別(例如 Python 的普通dict)進行update()操作不會保留合併對映的順序。另一方面,使用OrderedDict或另一個ParameterDict會保留它們的順序。請注意,建構函式、字典元素的賦值以及
update()方法會將任何Tensor轉換為Parameter。- 引數
values (iterable, optional) – 一個 (string : Any) 的對映(字典)或一個 (string, Any) 型別的鍵值對的可迭代物件
示例
class MyModule(nn.Module): def __init__(self) -> None: super().__init__() self.params = nn.ParameterDict( { "left": nn.Parameter(torch.randn(5, 10)), "right": nn.Parameter(torch.randn(5, 10)), } ) def forward(self, x, choice): x = self.params[choice].mm(x) return x
- copy()[source]#
返回此
ParameterDict例項的副本。- 返回型別
- setdefault(key, default=None)[source]#
設定 ParameterDict 中鍵的預設值。
如果鍵在 ParameterDict 中,則返回其值。否則,插入 key 和引數 default 並返回 default。default 預設為 None。
- update(parameters)[source]#
使用
parameters中的鍵值對更新ParameterDict,並覆蓋現有鍵。注意
如果
parameters是OrderedDict、ParameterDict或鍵值對的可迭代物件,則其中新元素的順序將被保留。- 引數
parameters (iterable) – 一個從 string 到
Parameter的對映(字典),或一個 (string,Parameter) 型別的鍵值對的可迭代物件