我想运行需要从 torch.utils.data.dataloader
导入 _DataLoaderIter
的代码。通过检查source code对于数据加载器类,存在该方法。但是,我收到错误:
Traceback (most recent call last):
File "main.py", line 4, in
import data
File "D:\Hyperspectral Data\RCAN\RCAN_TrainCode\code\data\__init__.py", line 3, in module
from dataloader import MSDataLoader
File "D:\Hyperspectral Data\RCAN\RCAN_TrainCode\code\dataloader.py", line 14, in module
from torch.utils.data.dataloader import _DataLoaderIter
ImportError: cannot import name '_DataLoaderIter'
为什么会发生这种情况?
最佳答案
您的评论回答了问题:_DataLoaderIter
在1.0.0
中有吗(您正在链接文档)但不在 0.3.1
中,您可以查看here - 它的名字前面没有 _
.
这是一个教科书示例,为什么访问其他包的私有(private)类/函数(通常带有下划线前缀)是一个坏主意 - 您对其实现和行为的稳定性的保证为零。如果您需要他们的代码,通常最好将代码复制粘贴到您自己的文件中,因为至少可以保证在 torch
的更新和错误修复之间不会更改。 .
关于python - torch.utils.data.dataloader 中的 _DataLoaderIter 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54467696/