我想运行一个需要从_DataLoaderIter导入torch.utils.data.dataloader的代码。通过检查dataloader类的源代码,该方法就存在。但是,我得到了错误:
回溯(最近一次调用): 文件"main.py",第4行,在 进口数据 文件“D:\高光谱Data\RCAN\RCAN_TrainCode\code\data\__init__.py",第3行,在模块中 从dataloader导入MSDataLoader 文件“D:\高光谱Data\RCAN\RCAN_TrainCode\code\dataloader.py",第14行,在模块中 从torch.utils.data.dataloader导入_DataLoaderIter ImportError:无法导入名称“_DataLoaderIter”
为什么会发生这种情况?
发布于 2019-02-01 18:43:58
您的评论回答了这个问题:_DataLoaderIter在1.0.0中(您正在为其链接文档),但不在0.3.1中,因为您可以检查这里 -它的名称没有前面的_。
这是一个教科书中的例子,说明访问其他包的私有类/函数(通常以下划线作为前缀)是个坏主意--您对它们的实现和行为的稳定性没有任何保证。如果您需要它们的代码,通常最好将代码复制粘贴到您自己的文件中,因为至少可以保证它不会在更新和错误修复之间更改到torch。
发布于 2019-04-01 11:53:35
为这个特定的回购创建一个新的虚拟环境并安装Torch0.4.0。我也遇到了同样的问题,重新安装TorchV0.4.0也帮了我的忙。
https://stackoverflow.com/questions/54467696
复制相似问题