7.md 676 字节
Newer Older
W
wizardforcel 已提交
1 2 3 4 5 6 7 8
# 序列化语义

#### 保存模型的推荐方法

序列化和恢复模型有两种主要方法。

第一个(推荐)只保存和加载模型参数:

W
wizardforcel 已提交
9
```py
W
wizardforcel 已提交
10 11 12 13 14
torch.save(the_model.state_dict(), PATH) 
```

然后:

W
wizardforcel 已提交
15
```py
W
wizardforcel 已提交
16 17 18 19 20 21
the_model = TheModelClass(*args, **kwargs)
the_mdel.load_state_dict(torch.load(PATH)) 
```

第二个方法是保存并加载整个模型:

W
wizardforcel 已提交
22
```py
W
wizardforcel 已提交
23 24 25 26 27
torch.save(the_model, PATH) 
```

然后:

W
wizardforcel 已提交
28
```py
W
wizardforcel 已提交
29 30 31 32
the_model = torch.load(PATH) 
```

然而,在这种情况下,序列化的数据会与特定的类结构和准确的目录结构相绑定,所以在其他项目中使用或经大量重构之后,这些结构可能会以各种方式被破坏。