【问题标题】:OSError: [Errno 22] Invalid argument when using torch.loadOSError: [Errno 22] 使用 torch.load 时参数无效
【发布时间】:2021-02-21 22:55:50
【问题描述】:

我正在尝试加载我的数据集,之前它可以正常工作,但突然间这个错误开始出现。

当我尝试像这样加载它时:

  train_set = Database_load(root = "C:\\Users\\Public\\PhysNet\\",train = "train.pth")

它给了我以下错误:


  File "C:\Users\Public\Lucas\PhysNet\modt.py", line 185, in <module>
    train_set = Database_load(root = "C:\\Users\\Public\\Lucas\\PhysNet\\",train = "train.pth")

  File "C:\Users\Public\Lucas\PhysNet\database_load.py", line 21, in __init__
    self.data, self.y1, self.y2= torch.load(os.path.join(self.root, self.train))

  File "C:\ProgramData\Anaconda3\envs\project\lib\site-packages\torch\serialization.py", line 386, in load
    return _load(f, map_location, pickle_module, **pickle_load_args)

  File "C:\ProgramData\Anaconda3\envs\project\lib\site-packages\torch\serialization.py", line 580, in _load
    deserialized_objects[key]._set_from_file(f, offset, f_should_read_directly)

OSError: [Errno 22] Invalid argument

我在输入路径时也尝试过执行以下操作,但没有成功:

  train_set = Database_load(root = r"C:\\Users\\Public\\PhysNet\\",train = "train.pth")
  train_set = Database_load(root = r'C:/Users/Public/PhysNet/',train = 'train.pth')

关于如何解决此问题的任何建议?

【问题讨论】:

  • .pth 文件的大小是多少?您使用的是哪个 PyTorch 版本?
  • 版本 = 1.2.0 。 .pth 文件大小 = 6GB

标签: python pytorch oserror


【解决方案1】:

这是由PR#20900 引起的已知问题(Issue#26998Issue#)。出现此问题是因为您尝试加载大于 2GB 的文件,并且它特定于 Windows,其中“sizeof(long)=4 for both 32-bit and 64-system systems”。此问题已由 PR#27069 修复,仅在 PyTorch 1.3+ 中可用。因此,要解决此问题,请升级您的 PyTorch 版本。

【讨论】:

    猜你喜欢
    • 2019-04-27
    • 1970-01-01
    • 2022-06-18
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 2021-02-10
    • 2021-11-06
    相关资源
    最近更新 更多