本章代码:
- https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson7/model_save.py
- https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson7/model_load.py
- https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson7/checkpoint_resume.py
- https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson7/save_checkpoint.py
这篇文章主要介绍了序列化与反序列化,以及 PyTorch 中的模型保存于加载的两种方式,模型的断点续训练。
序列化与反序列化
模型在内存中是以对象的逻辑结构保存的,但是在硬盘中是以二进制流的方式保存的。
-
序列化是指将内存中的数据以二进制序列的方式保存到硬盘中。PyTorch 的模型保存就是序列化。
-
反序列化是指将硬盘中的二进制序列加载到内存中,得到模型的对象。PyTorch 的模型加载就是反序列化。
PyTorch 中的模型保存与加载
torch.save
torch.save(obj, f, pickle_module, pickle_protocol=2, _use_new_zipfile_serialization=False)
<