Pytorch TypeError:无法序列化'_io.TextIOWrapper';对象

Pytorch TypeError:无法序列化'_io.TextIOWrapper';对象,pytorch,typeerror,eoferror,Pytorch,Typeerror,Eoferror,我使用的是RTX3080、python 3.7、torch 1.7.1、torchvision 0.8.2 我尝试更改python版本和批处理大小等,但不起作用 我能做些什么来解决这个问题 Traceback (most recent call last): File "run_captioning.py", line 882, in <module> main() File "run_captioning.py", line

我使用的是RTX3080、python 3.7、torch 1.7.1、torchvision 0.8.2

我尝试更改python版本和批处理大小等,但不起作用

我能做些什么来解决这个问题

Traceback (most recent call last):
  File "run_captioning.py", line 882, in <module>
    main()
  File "run_captioning.py", line 861, in main
    global_step, avg_loss = train(args, train_dataset, val_dataset, model, tokenizer)
  File "run_captioning.py", line 424, in train
    for step, (img_keys, batch) in enumerate(train_dataloader):
  File "C:\Users\User\.conda\envs\py37\lib\site-packages\torch\utils\data\dataloader.py", line 352, in __iter__
    return self._get_iterator()
  File "C:\Users\User\.conda\envs\py37\lib\site-packages\torch\utils\data\dataloader.py", line 294, in _get_iterator
    return _MultiProcessingDataLoaderIter(self)
  File "C:\Users\User\.conda\envs\py37\lib\site-packages\torch\utils\data\dataloader.py", line 801, in __init__
    w.start()
  File "C:\Users\User\.conda\envs\py37\lib\multiprocessing\process.py", line 112, in start
    self._popen = self._Popen(self)
  File "C:\Users\User\.conda\envs\py37\lib\multiprocessing\context.py", line 223, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
  File "C:\Users\User\.conda\envs\py37\lib\multiprocessing\context.py", line 322, in _Popen
    return Popen(process_obj)
  File "C:\Users\User\.conda\envs\py37\lib\multiprocessing\popen_spawn_win32.py", line 65, in __init__
    reduction.dump(process_obj, to_child)
  File "C:\Users\User\.conda\envs\py37\lib\multiprocessing\reduction.py", line 60, in dump
    ForkingPickler(file, protocol).dump(obj)
TypeError: cannot serialize '_io.TextIOWrapper' object

(py37) D:\Oscar\oscar>Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\User\.conda\envs\py37\lib\multiprocessing\spawn.py", line 105, in spawn_main
    exitcode = _main(fd)
  File "C:\Users\User\.conda\envs\py37\lib\multiprocessing\spawn.py", line 115, in _main
    self = reduction.pickle.load(from_parent)
EOFError: Ran out of input
回溯(最近一次呼叫最后一次):
文件“run_captioning.py”,第882行,在
main()
文件“run_captioning.py”,第861行,在main中
全局步长,平均损耗=序列(参数、序列数据集、val数据集、模型、标记器)
列车中第424行的文件“run_captioning.py”
对于枚举(序列数据加载器)中的步骤(img_键,批次):
文件“C:\Users\User\.conda\envs\py37\lib\site packages\torch\utils\data\dataloader.py”,第352行,在__
返回self.\u get\u迭代器()
文件“C:\Users\User\.conda\envs\py37\lib\site packages\torch\utils\data\dataloader.py”,第294行,在get迭代器中
return\u多处理数据装入器(self)
文件“C:\Users\User\.conda\envs\py37\lib\site packages\torch\utils\data\dataloader.py”,第801行,在\uuu init中__
w、 开始()
文件“C:\Users\User\.conda\envs\py37\lib\multiprocessing\process.py”,第112行,在开始处
self.\u popen=self.\u popen(self)
文件“C:\Users\User\.conda\envs\py37\lib\multiprocessing\context.py”,第223行,以Popen格式
返回_default_context.get_context().Process._Popen(Process_obj)
文件“C:\Users\User\.conda\envs\py37\lib\multiprocessing\context.py”,第322行,在Popen中
返回Popen(过程对象)
文件“C:\Users\User\.conda\envs\py37\lib\multiprocessing\popen\u spawn\u win32.py”,第65行,在初始化中__
减少.转储(进程对象,到子进程)
文件“C:\Users\User\.conda\envs\py37\lib\multiprocessing\reduce.py”,第60行,转储文件
ForkingPickler(文件、协议).dump(obj)
TypeError:无法序列化'\u io.TextIOWrapper'对象
(py37)D:\Oscar\Oscar>回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“C:\Users\User\.conda\envs\py37\lib\multiprocessing\spawn.py”,第105行,在spawn\u main中
出口代码=_主(fd)
文件“C:\Users\User\.conda\envs\py37\lib\multiprocessing\spawn.py”,第115行,在主目录中
self=reduce.pickle.load(从父级)
EOFError:输入不足

这是窗口编译器中的一个问题

只有linux提供该功能

当我用wsl运行这段代码时,错误消失了