Pytorch 在python中断言对象意味着什么?

Pytorch 在python中断言对象意味着什么?,pytorch,python-3.7,Pytorch,Python 3.7,我们在这行“assert dataset”中得到一个断言错误。我们正在打印dataset对象,得到的值为“”。我们在这段代码中使用了“Python3.7”。为什么在dataset对象上出现断言错误 我们基本上是在尝试运行AttnGAN()的代码。 “code/main.py”中的第130行出现错误 代码 数据集=文本数据集(cfg.DATA\u DIR,split\u DIR,base\u size=cfg.TREE.base\u size,transform=image\u transform

我们在这行“assert dataset”中得到一个断言错误。我们正在打印dataset对象,得到的值为“”。我们在这段代码中使用了“Python3.7”。为什么在dataset对象上出现断言错误

我们基本上是在尝试运行AttnGAN()的代码。 “code/main.py”中的第130行出现错误

代码

数据集=文本数据集(cfg.DATA\u DIR,split\u DIR,base\u size=cfg.TREE.base\u size,transform=image\u transform)

打印(数据集)

断言数据集

dataloader=torch.utils.data.dataloader(数据集,batch\u size=cfg.TRAIN.batch\u size,drop\u last=True,shuffle=bshuffle,num\u workers=int(cfg.workers))

输出

从以下位置加载:C:\Users\admin\Desktop\TextToImage\AttnGAN master(1)\AttnGAN master\code/。/data/birds/captions.pickle

回溯(最近一次呼叫最后一次): 文件“/code/main.py”,第131行,在 断言数据集

断言者


PS C:\Users\admin\Desktop\TextToImage\AttnGAN master(1)\AttnGAN master>

在这种情况下,
断言数据集
不是检查数据集是否为空的非常清晰的方法。如果表达式(在本例中为dataset对象)的计算结果为false,则assert将引发异常

“真值测试”说

默认情况下,除非对象的类定义了 返回False的
\uuu bool\uuu()
方法或
\uu len\uuu()
方法 返回零

在github repo上,TextDataset确实定义了
\uuu len\uuu()
。逻辑上的结论是,在您的案例中,数据集的返回长度(加载后)为零

尝试查看它从何处加载数据,尝试确保数据在那里,并在断言之前打印长度。好处:尝试弄清楚为什么原始加载没有抛出异常,但成功并生成一个空数据集