PyTorch Big Graph 嵌入数据集中优化器 state_dict 的目的是啥?
Posted
技术标签:
【中文标题】PyTorch Big Graph 嵌入数据集中优化器 state_dict 的目的是啥?【英文标题】:What is the purpose of optimizer's state_dict in PyToch Big Graph's embedding dataset?PyTorch Big Graph 嵌入数据集中优化器 state_dict 的目的是什么? 【发布时间】:2021-06-24 15:29:24 【问题描述】:PyTorch Big Graph (PBG) 的文档指出“可能存在一个额外的数据集,optimizer/state_dict,其中包含模型优化器的 state dict 的二进制 blob(通过 torch.save() 获得)。”检查此数据集时,它似乎存储为字节数组。有人可以从概念上解释 state_dict 的意义以及为什么将其存储为数组而不是字典吗?
【问题讨论】:
【参考方案1】:有人可以从概念上解释 state_dict 的意义
如果您了解 Adam 或 SGD 的动量,您可能知道优化器中的一些参数在每一步都会发生变化。当在加载模型权重的基础上恢复训练时,如果您也加载这些参数,将会加快收敛速度。
没有它你也可以侥幸逃脱,只是有时你几乎就像从头开始训练一样。
为什么它被存储为数组而不是字典?
如果它真的是通过torch.save()
获得的,那么它实际上是存储在字典中或至少是一个字典列表中。只是你的“检查”过程是错误的。试试
print(torch.load('path_to_the_file'))
【讨论】:
以上是关于PyTorch Big Graph 嵌入数据集中优化器 state_dict 的目的是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Coursera, Big Data 5, Graph Analytics for Big Data, Week 2 What is a Graph?