Pytorch中DataProvider的一个细节
最近写Pytorch被TypeError: batch must contain tensors, numbers, dicts or lists; found <class 'NoneType'>
卡住,而奇怪的地方在于我传入的是字典类型,原因是字典类型中不能用None关键字。具体如下:
"img_shape": null,
"slice_num": "0163",
"contour": [],
我的字典变量如上面代码所示,从json文件读取,而执行下面DataLoader代码:
from torch.utils.data import Dataset, DataLoader
dataProvider = DataProvider()
train_loader = DataLoader(dataProvider)
会提示如下错误:
raise TypeError((error_msg.format(type(batch[0]))))
TypeError: batch must contain tensors, numbers, dicts or lists; found <class 'NoneType'>
原因是json文件中的null虽然能解析成python的字典,但是Pytorch的DataLoader不支持。将其改为其他类型即可。