迭代器不适用于GPU上的DataLoader

问题描述

我在Google Colab上使用PyTorch,在使用GPU时遇到此错误,

TypeError                                 Traceback (most recent call last)
<ipython-input-33-41cdbc758ecd> in <module>()
----> 1 dataiter= iter(trainloader)

TypeError: '_SingleProcessDataLoaderIter' object is not callable

但是使用普通CPU不会出现错误。

我的代码:

%matplotlib inline
%config InlineBackend.figure_format = 'retina'

import torch
import numpy as np
from torchvision import datasets,transforms

from collections import  OrderedDict

from torch import nn
from torch import  optim
import torch.nn.functional as F
import helper


transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,0.5,0.5),(0.5,0.5))])

trainset= datasets.MNIST("MINIST_data/",download= True,train=True,transform=transform)
trainloader= torch.utils.data.DataLoader(trainset,batch_size= 64,shuffle=True)
dataiter= iter(trainloader)

使用enumerate而不是iter可以在GPU上运行,但是我不知道为什么,有人可以向我解释该错误以及为什么会发生该错误!?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)