【问题标题】:Save Pytorch model state_dict with datetime in filename使用文件名中的日期时间保存 Pytorch 模型 state_dict
【发布时间】:2021-08-29 15:27:46
【问题描述】:

我一直在尝试使用
torch.save(agent.qnetwork_local.state_dict(), filename) 其中
filename = datetime.now().strftime('%d-%m-%y-%H:%M_dqnweights.pth')

保存 Pytorch 模型的 state_dict

type(filename) 返回strtorch.save() 应该没有问题,它应该输出一个非空文件。相反,我得到一个只有日期和时间的空文件,之后什么都没有。将日期和文件名放在中间会导致一个空文件,其中包含截止日期和时间之后的所有内容。

torch.save(agent.qnetwork_local.state_dict(), 'checkpoint1.pth') 并且任何时候我硬编码字符串都可以工作并给我预期的非空文件。

发生了什么,我该如何解决?

我在 Windows 10 上使用 Pytorch v1.8.1+cpu 在 Python v3.6.8 virtualenv 中运行此代码。

【问题讨论】:

  • 你的操作系统是什么?窗户?
  • 是的 WIndows 10。现在编辑问题。
  • 我认为 Windows 文件名中不允许使用冒号。尝试不使用它。
  • 成功了。我曾假设任何文件名问题只会引发错误而不是保存空文件。如果文件与运行程序的操作系统的约定不兼容,是否可以使用异常或其他机制来防止写入文件?
  • 没有内置的,AFAIK。看看:stackoverflow.com/questions/295135/…

标签: python pytorch state-dict


【解决方案1】:

冒号是filename = datetime.now().strftime('%d-%m-%y-%H:%m_dqnweights.pth') 中的问题,因为它是在 Windows 上运行的。

将其更改为 filename = datetime.now().strftime('%d-%m-%y-%H_%M_dqnweights.pth') 可以正常工作。

【讨论】:

  • 注意分钟是错误的。应该是%M,否则会再次输出月份。
  • 糟糕。修复。谢谢。
猜你喜欢
  • 2020-10-17
  • 2019-12-15
  • 2021-10-01
  • 1970-01-01
  • 2018-01-14
  • 1970-01-01
  • 2018-08-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多