num_samples should be a positive integer value, but got num_samples=0
在window中,有的可以将num_samples设为0,但是我这边还是会报错:
ValueError Traceback (most recent call last)
<ipython-input-26-72c27d20c47d> in <module>
16 ])),
17 batch_size=40,
---> 18 shuffle=True,
19 # num_workers=0,
20 )
e:\anaconda\envs\pytorch_envs\lib\site-packages\torch\utils\data\dataloader.py in __init__(self, dataset, batch_size, shuffle, sampler, batch_sampler, num_workers, collate_fn, pin_memory, drop_last, timeout, worker_init_fn)
174 if sampler is None:
175 if shuffle:
--> 176 sampler = RandomSampler(dataset)
177 else:
178 sampler = SequentialSampler(dataset)
#即使自己不指定batch_sampler,DataLoader还是会生成的:
e:\anaconda\envs\pytorch_envs\lib\site-packages\torch\utils\data\sampler.py in __init__(self, data_source, replacement, num_samples)
64 if not isinstance(self.num_samples, int) or self.num_samples <= 0:
65 raise ValueError("num_samples should be a positive integer "
---> 66 "value, but got num_samples={}".format(self.num_samples))
67
68 @property
ValueError: num_samples should be a positive integer value, but got num_samples=0
经过查询如果指定了batch_sampler,那么就不要再额外指定 batch_size的大小了;指定了sampler,shuffle就应该是默认的 “ False ”,修改即可