ParameterDict#
- class torch.nn.ParameterDict(parameters=None)[原始碼]#
以字典形式儲存引數。
ParameterDict 可以像普通 Python 字典一樣被索引,但其中包含的 Parameter 會被正確註冊,並且對所有 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()[原始碼]#
返回此
ParameterDict例項的副本。- 返回型別
- setdefault(key, default=None)[原始碼]#
設定 ParameterDict 中鍵的預設值。
如果 key 在 ParameterDict 中,則返回其值。如果不在,則插入 key 並設定其引數為 default,然後返回 default。default 預設為 None。
- update(parameters)[原始碼]#
使用
parameters中的鍵值對更新ParameterDict,會覆蓋現有鍵。注意
如果
parameters是OrderedDict、ParameterDict或鍵值對的可迭代物件,則其中新元素的順序會被保留。- 引數
parameters (iterable) – 一個從 string 到
Parameter的對映(字典),或一個 (string,Parameter) 型別的鍵值對可迭代物件