如上打印輸出所示,pth文件通過有序字典來保持模型參數。有序字典與常規字典壹樣,但是在排序操作方面有壹些額外的功能。常規的dict是無序的,OrderedDict能夠比dict更好地處理頻繁的重新排序操作。
OrderedDict有壹個方法 popitem(last=True) 用於有序字典的popitem()方法返回並刪除壹個(鍵,值)對。如果last為真,則按LIFO順序返回對;如果為假,則按FIFO順序返回對。
OrderedDict還有壹個方法 move_to_end(key,last=True) ,將現有的鍵移動到有序字典的兩端。如果last為真,則將項目移動到右端(默認);如果last為假,則移動到開頭。
如上打印所示,有序字典state_dict中每個元素都是Parameter參數,該參數是壹種特殊的張量,包含data和requires_grad兩個方法。其中data字段保存的是模型參數,requires_grad字段表示當前參數是否需要進行反向傳播。
先建立壹個字典,保存三個參數:調用torch.save(),即可保存對應的pth文件。需要註意的是若模型是由nn.Moudle類繼承的模型,保存pth文件時,state_dict參數需要由 model.state_dict 指定。
當妳想恢復某壹階段的訓練(或者進行測試)時,那麽就可以讀取之前保存的網絡模型參數等。