Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AttributeError:DataLoader属性缺失'persistent_workers'?

AttributeError:DataLoader属性缺失'persistent_workers'?

提问于 2023-01-11 08:48:56
回答 0关注 0查看 149
代码语言:js
AI代码解释
复制
  File "C:\Users\26001\AppData\Local\Programs\Python\Python38\lib\site-packages\torch\utils\data\dataloader.py", line 428, in __iter__
    if self.persistent_workers and self.num_workers > 0:
AttributeError: 'DataLoader' object has no attribute 'persistent_workers'

使用DataLoader时遇到AttributeError:属性缺失'persistent_workers'

代码语言:js
AI代码解释
复制
Traceback (most recent call last):
  File "H:\Users\Administrator\Desktop\fakeNewsDetection\FND\_023_modelingMain.py", line 93, in <module>
    mainFunc()
  File "H:\Users\Administrator\Desktop\fakeNewsDetection\FND\_023_modelingMain.py", line 86, in mainFunc
    net.trainTVT()
  File "H:\Users\Administrator\Desktop\fakeNewsDetection\FND\_022_train.py", line 71, in trainTVT
    for it,(text,mask,label,domainLabel) in enumerate(self.dataLoaderTra):
  File "C:\Users\26001\AppData\Local\Programs\Python\Python38\lib\site-packages\torch\utils\data\dataloader.py", line 428, in __iter__
    if self.persistent_workers and self.num_workers > 0:
AttributeError: 'DataLoader' object has no attribute 'persistent_workers'

代码语言:js
AI代码解释
复制
        for i in range(self.start_epoch, self.final_epoch):
            timeStart=time.time()            
            # train
            self.net.train()
            correct=0.0
            total=0.0
            for it,(text,mask,label,domainLabel) in enumerate(self.dataLoaderTra):
                text,label=text.long(),label.long()
                text,mask,label,domainLabel=(text.to(self.device),
                                             mask.to(self.device),
                                             label.to(self.device),
                                             domainLabel.to(self.device))
                self.optimizer.zero_grad()
                outputs=self.net(text, mask)
                outputsLog=torch.log(outputs)
                loss=self.loss(outputsLog,label)                
                loss.backward()

class定义为

代码语言:js
AI代码解释
复制
class Network(object):
    def __init__(self, opt):
        self.seed=opt.seed
        setupSeed(self.seed)
        self.batch=opt.batch
        self.lr=opt.lr
        self.start_epoch=opt.start_epoch
        self.final_epoch=opt.final_epoch
        self.inter=opt.inter
        self.mode=opt.mode
        self.models=opt.models
        self.plots=opt.plots
        # define dataloader
        self.dataLoaderTra, self.dataLoaderVal, self.dataLoaderTes, self.weightAr, self.coreList = getDatasetTVT(opt.traValTesName)
        # add weightAr to opt
        opt.weightAr = self.weightAr

def getDatasetTVT(traValTesName):
    dataLoaderTraValTesWeightAr=pickle.load(open(traValTesName,'rb'))
    dataLoaderTra, dataLoaderVal, dataLoaderTes, weightArray,coreListTra=dataLoaderTraValTesWeightAr
    return dataLoaderTra, dataLoaderVal, dataLoaderTes, weightArray,coreListTra

dataloader文件中

代码语言:js
AI代码解释
复制
    def __iter__(self) -> '_BaseDataLoaderIter':
        # When using a single worker the returned iterator should be
        # created everytime to avoid reseting its state
        # However, in the case of a multiple workers iterator
        # the iterator is only created once in the lifetime of the
        # DataLoader object so that workers can be reused
        if self.persistent_workers and self.num_workers > 0:
            if self._iterator is None:
                self._iterator = self._get_iterator()
            else:
                self._iterator._reset(self)
            return self._iterator
        else:
            return self._get_iterator()

请问问题出在哪里呢?应该如何修改

回答

成为首答用户。去 写回答
相关文章
是时候该学会 MMDetection 进阶之非典型操作技能了(一)
大家好,今天我们将开启全新的 MMDetection 系列文章,是时候带大家学习一些非典型操作技能啦。
OpenMMLab 官方账号
2022/04/08
1.8K0
是时候该学会 MMDetection 进阶之非典型操作技能(一)
大家好,今天我们将开启全新的 MMDetection 系列文章,是时候带大家学习一些非典型操作技能啦。
OpenMMLab 官方账号
2022/02/28
3K0
有bug!用Pytorch Lightning重构代码速度更慢,修复后速度倍增
选自Medium 作者:Florian Ernst 机器之心编译 编辑:小舟、陈萍 用了 Lightning 训练速度反而更慢,你遇到过这种情况吗? PyTorch Lightning 是一种重构 PyTorch 代码的工具,它可以抽出代码中复杂重复的部分,使得 AI 研究可扩展并且可以快速迭代。然而近日一位名为 Florian Ernst 的博主却发现 PyTorch Lightning 存在一个 bug——让原本应该加速的训练变得更慢了。 本文作者 Florian Ernst Ernst 撰写博客详
机器之心
2023/03/29
9220
有bug!用Pytorch Lightning重构代码速度更慢,修复后速度倍增
dataloader 源码_DataLoader
ITERABLE = True # whether the created DataLoader object is iterable
全栈程序员站长
2022/06/30
2380
DataLoader详解
对数据集处理虽说很方便但在参数选取和其他的细节方面还容易出问题,尤其是最后一个Batch长度不足,会导致输出维度发生问题,若直接舍去,我还想要全部的数据结果
全栈程序员站长
2022/08/19
7320
DataLoader详解
AttributeError: 'dic
这是因为换成了Python3.6.5,Python3.6.5已经删除了has_key()方法,改成了下面的写法:
py3study
2020/01/19
6360
pytorch之DataLoader
在训练神经网络时,最好是对一个batch的数据进行操作,同时还需要对数据进行shuffle和并行加速等。对此,PyTorch提供了DataLoader帮助实现这些功能。Dataset只负责数据的抽象,一次调用__getitem__只返回一个样本。
全栈程序员站长
2022/08/23
5050
pytorch之DataLoader
PyTorch 学习 -3- 数据读入
我们可以定义自己的Dataset类来实现灵活的数据读取,定义的类需要继承PyTorch自身的Dataset类。主要包含三个函数:
为为为什么
2023/07/20
3080
Dataset和DataLoader
Pytorch通常使用Dataset和DataLoader这两个工具类来构建数据管道。
lyhue1991
2020/07/20
2.5K0
Dataset和DataLoader
【小白学习PyTorch教程】五、在 PyTorch 中使用 Datasets 和 DataLoader 自定义数据
因此,唯一的方法是将数据分批加载到内存中进行处理,这需要编写额外的代码来执行此操作。对此,PyTorch 已经提供了 Dataloader 功能。
润森
2022/08/18
8990
【小白学习PyTorch教程】五、在 PyTorch 中使用 Datasets 和 DataLoader 自定义数据
AttributeError: __enter__
?  解决方法: Session()后面加上()  解决方法: Session()后面加上()  解决方法: Session()后面加上()  解决方法: Session()后面加上()  解决方法:
狼啸风云
2019/07/01
2K0
AttributeError: __enter__
Pytorch dataloader 错误 “DataLoader worker (pid xxx) is killed by signal” 解决方法
在使用 pytorch dataloader 时,出现了当把num_workers 设置不为0即报错的问题,本文记录两种此类错误的解决方案。 Dataloader - num_workers Pytorch 中加载数据的模块Dataloader有个参数num_workers,该参数表示使用dataloader时加载数据的进程数量,可以理解为为网络搬运数据的工人数量; 所以如果dataloader比较复杂,工人多的时候自然可以节省大量数据加载时间,他们可以在网络训练时同时进行数据加载工作,等网络
为为为什么
2022/08/05
5.2K0
torch.utils.data.DataLoader()
数据加载器,结合了数据集和取样器,并且可以提供多个线程处理数据集。在训练模型时使用到此函数,用来把训练数据分成多个小组,此函数每次抛出一组数据。直至把所有的数据都抛出。就是做一个数据的初始化。
狼啸风云
2020/03/02
1.7K0
AttributeError: __enter__
交流、咨询,有疑问欢迎添加QQ 2125364717,一起交流、一起发现问题、一起进步啊,哈哈哈哈哈 错误原因: tf.Session()少打了括号。 tf.Session()少打了括号。 tf.S
狼啸风云
2019/03/21
2K0
AttributeError: __enter__
pytorch DataLoader(2): Dataset,DataLoader自定义训练数据_opencv,skimage,PIL接口
本文主要简单讲解一下opencv,skimage,PIL读取数据并加载到dataset。 一些前置知识可以参考前一篇文章pytorch DataLoader(1): opencv,skimage,PIL,Tensor转换以及transforms,这篇文章主要讲了一些opencv,skimage,PIL的格式,读取方式,相互转换等,有助于帮助大家理解本文本文的一些操作等。
烤粽子
2021/07/07
1K0
pytorch DataLoader(2): Dataset,DataLoader自定义训练数据_opencv,skimage,PIL接口
使用JAX实现完整的Vision Transformer
来源:DeepHub IMBA 本文约3200字,建议阅读10+分钟 本文将展示如何使用JAX/Flax实现Vision Transformer (ViT),以及如何使用JAX/Flax训练ViT。 Vision Transformer 在实现Vision Transformer时,首先要记住这张图。 以下是论文描述的ViT执行过程。 从输入图像中提取补丁图像,并将其转换为平面向量。 投影到 Transformer Encoder 来处理的维度。 预先添加一个可学习的嵌入([class]标记),并添加一个
数据派THU
2023/03/29
5060
使用JAX实现完整的Vision Transformer
PyTorch-数据处理流程
数据加载处理是深度学习模型训练的前奏,是很重要的一部分。这一过程需要把原始数据,影像或者文本等进行封装、转换,并以合适的格式传递给模型。这个过程依赖torch.utils.data模块,常用以上三个类:
GIS指北
2022/11/14
7390
PyTorch-数据处理流程
Pytorch中DataLoader的使用[通俗易懂]
最近开始接触pytorch,从跑别人写好的代码开始,今天需要把输入数据根据每个batch的最长输入数据,填充到一样的长度(之前是将所有的数据直接填充到一样的长度再输入)。 刚开始是想偷懒,没有去认真了解输入的机制,结果一直报错…还是要认真学习呀!
全栈程序员站长
2022/08/14
4.9K0
Pytorch中DataLoader的使用[通俗易懂]
AttributeError: module 'tensor board.
将tf.summary.FileWriter()换成tf.summary.create_file_writer()
狼啸风云
2020/02/11
2K0
手把手教你使用 MMSegmentation 打比赛,助你轻松打榜拿奖!
本文主要是简述一下本人为了完成极市平台赛事过程中,使用 MMSegmentation 语义分割开源库的心得。
OpenMMLab 官方账号
2023/08/21
1.3K0
手把手教你使用 MMSegmentation 打比赛,助你轻松打榜拿奖!

相似问题

Dataloader 同时调用 get item 导致数据混乱?

079

AttributeError: move_to requires a WebElement?

01.2K

文章内容缺失了?

1300

github上ethermint源码缺失?

0228

pytorch中具有多类型图像输入和单个图像输出的"dataset和dataloader"怎么创建?

073
相关问答用户
腾讯 | 技术专家擅长2个领域
擅长3个领域
擅长4个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档