当尝试使用自定义DataLoader训练神经网络时:
train_dataset = datasets.VectorizedDataset(x_train,y_train)
train_loader = datasets.DataLoader(shuffle=True,num_workers=4)
这会立即错误地加载数据:
RuntimeError: cuda runtime error (71) : operation not supported at c:\a\w\1\s\tmp_conda_3.6_090826\conda\conda-bld\pytorch_1550394668685\work\torch\csrc\generic\StorageSharing.cpp:232
{CUDA IPC ops}已记录在here中:
Windows不支持它们。像做某事 CUDA张量上的多处理无法成功,有两个 替代方案。
不要使用多重处理。将DataLoader的num_worker设置为零。
改为共享CPU张量。确保自定义数据集返回CPU张量。
我正在通过PyTorch 1.0.1和CUDA 10.0在 Windows 10 上使用GTX 1070 GPU。
在Pytorch的Windows计算机上,实际上是否不可能将CUDA张量数据加载卸载到多个CPU上?有解决方法吗?我们是否需要做一些更复杂的事情,例如编写我们自己的多线程?还是我们被迫将所有数据加载到主进程上?
感谢您的帮助。