序列化语义

  1. 最佳做法
  2. 用于保存模型的推荐方法

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

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

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

然后:

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

第二种:保存和加载整个模型

torch.save(the_model, PATH)

然后:

the_model = torch.load(PATH)

然而,在这种情况下,序列化的数据被绑定到特定的类和固定的目录结构,所以当在其他项目中使用时,或者在一些严重的重构器之后它可能会以各种方式break。