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?

pytorch中的tensorboard使用

pytorch中的tensorboard使用

pytorch中的tensorboard使用

Pytorch文本分类(imdb数据集),含DataLoader数据加载,最优模型保存

pytorch 数据集中每个类的实例数