序列化语义

原文: https://pytorch.org/docs/stable/notes/serialization.html

最佳实务

推荐的模型保存方法

序列化和还原模型有两种主要方法。

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

  1. torch.save(the_model.state_dict(), PATH)

然后再:

  1. the_model = TheModelClass(*args, **kwargs)
  2. the_model.load_state_dict(torch.load(PATH))

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

  1. torch.save(the_model, PATH)

Then later:

  1. the_model = torch.load(PATH)

但是,在这种情况下,序列化的数据将绑定到所使用的特定类和确切的目录结构,因此在其他项目中使用时或经过一些严重的重构后,序列化的数据可能会以各种方式中断。