跑yolov5-6.0时报“页面文件太小,无法完成操作”的错误

跑yolov5-6.0时报“页面文件太小,无法完成操作”的错误

问题相关代码,请勿粘贴截图
train: Scanning 'D:\yolov5-6.0\VOCdevkit\labels\train' images and labels...:   0%|          | 0/21 [00:00<?, ?it/s]Traceback (most recent call last):
  File "", line 1, in <module>
  File "D:\Anaconda3\envs\yolo5\lib\multiprocessing\spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "D:\Anaconda3\envs\yolo5\lib\multiprocessing\spawn.py", line 125, in _main
    prepare(preparation_data)
  File "D:\Anaconda3\envs\yolo5\lib\multiprocessing\spawn.py", line 236, in prepare
    _fixup_main_from_path(data['init_main_from_path'])
  File "D:\Anaconda3\envs\yolo5\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
  File "D:\Anaconda3\envs\yolo5\lib\runpy.py", line 269, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "D:\Anaconda3\envs\yolo5\lib\runpy.py", line 96, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "D:\Anaconda3\envs\yolo5\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "D:\yolov5-6.0\train.py", line 20, in <module>
    import torch
  File "D:\Anaconda3\envs\yolo5\lib\site-packages\torch\__init__.py", line 129, in <module>
    raise err
OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading "D:\Anaconda3\envs\yolo5\lib\site-packages\torch\lib\shm.dll" or one of its dependencies.
Traceback (most recent call last):
  File "", line 1, in <module>
  File "D:\Anaconda3\envs\yolo5\lib\multiprocessing\spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "D:\Anaconda3\envs\yolo5\lib\multiprocessing\spawn.py", line 125, in _main
    prepare(preparation_data)
  File "D:\Anaconda3\envs\yolo5\lib\multiprocessing\spawn.py", line 236, in prepare
    _fixup_main_from_path(data['init_main_from_path'])
  File "D:\Anaconda3\envs\yolo5\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
  File "D:\Anaconda3\envs\yolo5\lib\runpy.py", line 269, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "D:\Anaconda3\envs\yolo5\lib\runpy.py", line 96, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "D:\Anaconda3\envs\yolo5\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "D:\yolov5-6.0\train.py", line 20, in <module>
    import torch
  File "D:\Anaconda3\envs\yolo5\lib\site-packages\torch\__init__.py", line 129, in <module>
    raise err
OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading "D:\Anaconda3\envs\yolo5\lib\site-packages\torch\lib\shm.dll" or one of its dependencies
循环报错,我是手动停止的

运行结果及报错内容

OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading "D:\Anaconda3\envs\yolo5\lib\site-packages\torch\lib\shm.dll" or one of its dependencies.

我的解答思路和尝试过的方法

尝试了多种办法,加D盘虚拟内存到100G、降低batch-size、降低workers、并且还把num_workers值给到0,依然报同样的错误;别人多少能加载一部分数据然后报“页面文件太小”我是直接0加载就报错,我怀疑与虚拟内存大小无关,但是我也排不出其他问题了(还有这个错误会一直循环报,我得手动停止代码它才停)

我想要达到的结果

望给予帮助,没齿难忘,叩首.

已经搞清楚了,虚拟内存设置的时候需要将初始值和最大值同时拉到要给的大小,“任务管理器 / 性能”页面下已提交的数值大小是看你设置的最大值不看初始值,YOLOv5运行也是先算你够不够大,不够就崩程序或者报错

img

img

你的pytorch版本多少,不建议使用太新的版本。目前比较建议的版本是1.8.2-LST,这个是长期稳定版,一般5年才会更新一次,比较稳定
你物理内存多少?加虚拟内存的前提是你的物理内存要先有足够大的空间
另外,将你的imgsz设置成64,batch size设置成1.device设置成cpu看下能否正确运行。
再不行的话看下这个脚本行不行,改下路径改成你的报错的这个dll路径看看