torch.optim.Optimizer.state_dict¶
- Optimizer.state_dict()[原始碼][原始碼]¶
以
dict的形式返回最佳化器的狀態。它包含兩個條目:
state: 一個 Dict,包含當前的最佳化狀態。其內容因最佳化器類而異,但有一些共同的特點。例如,狀態是按引數儲存的,引數本身則不儲存。
state是一個將引數 ID 對映到包含對應每個引數狀態的 Dict 的字典。
param_groups: 一個 List,包含所有引數組,其中每個引數組都是一個 Dict。每個引數組包含最佳化器特有的元資料,例如學習率和權重衰減,以及組中引數的引數 ID 列表。如果一個引數組是使用
named_parameters()初始化的,則名稱內容也會儲存在狀態字典中。
注意:引數 ID 可能看起來像索引,但它們僅僅是將狀態與 param_group 相關聯的 ID。從 state_dict 載入時,最佳化器將打包 param_group 的
params(整數 ID) 和最佳化器的param_groups(實際的nn.Parameters),以便匹配狀態,而無需進行額外驗證。返回的狀態字典可能看起來像:
{ 'state': { 0: {'momentum_buffer': tensor(...), ...}, 1: {'momentum_buffer': tensor(...), ...}, 2: {'momentum_buffer': tensor(...), ...}, 3: {'momentum_buffer': tensor(...), ...} }, 'param_groups': [ { 'lr': 0.01, 'weight_decay': 0, ... 'params': [0] 'param_names' ['param0'] (optional) }, { 'lr': 0.001, 'weight_decay': 0.5, ... 'params': [1, 2, 3] 'param_names': ['param1', 'layer.weight', 'layer.bias'] (optional) } ] }