Dataloader使用时iter.next()迭代器出现错误怎么解决以及_MultiProcessingDataLoaderIter报错解决指南

这篇具有很好参考价值的文章主要介绍了Dataloader使用时iter.next()迭代器出现错误怎么解决以及_MultiProcessingDataLoaderIter报错解决指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

出现一下错误 怎么办?


AttributeError: '_MultiProcessingDataLoaderIter' object has no attribute 'next'

以下附上出问题的源码 这是 我在学习如何dataloader 使用迭代器时候报的错误

import torch
import torchvision
from torch.utils.data import Dataset,DataLoader
import numpy as np
import math

class WineDataset(Dataset):
    def __init__(self):
        #data loading
        xy = np.loadtxt('./wine.csv',delimiter=",", dtype=np.float32, skiprows=1)#delimiter  分隔符  skiprows跳过第一行
        self.x = torch.from_numpy(xy[:, 1:])
        self.y = torch.from_numpy(xy[:,[0]])
        self.n_samples = xy.shape[0]
    def __getitem__(self, index):
        # dataset[0]
        return  self.x[index], self.y[index]
    def __len__(self):
        #len(dataset)
        return self.n_samples

dataset = WineDataset()
# first_data = dataset[0]
# features, labels = first_data  #test
# print(features,labels)
dataloader = DataLoader(dataset=dataset, batch_size=4,shuffle=True, num_workers=2) #--------------注意点 
dataiter = iter(dataloader)
data = dataiter.next()  #--------------注意点
features, labels = data
print(features, labels)

下方是报错的信息 由于跟着之前的课程学习,由于年代久远一点,时不时会出现一些小的问题 ,库的变动 (装最新的版本 ,老版本的不需要担心)

RuntimeError: 
        An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.

        This probably means that you are not using fork to start your
        child processes and you have forgotten to use the proper idiom
        in the main module:

            if __name__ == '__main__':
                freeze_support()
                ...

        The "freeze_support()" line can be omitted if the program
        is not going to be frozen to produce an executable.
Traceback (most recent call last):
  File "C:\Users\92301\miniconda3\envs\hyspytorch\lib\site-packages\torch\utils\data\dataloader.py", line 1120, in _try_get_data
    data = self._data_queue.get(timeout=timeout)
  File "C:\Users\92301\miniconda3\envs\hyspytorch\lib\multiprocessing\queues.py", line 108, in get
    raise Empty
_queue.Empty

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "D:\codepython\pythonSpectralProcessing\torch\09Dataset and Dataloader.py", line 27, in <module>
    data = next(dataiter)  #--------------注意点
  File "C:\Users\92301\miniconda3\envs\hyspytorch\lib\site-packages\torch\utils\data\dataloader.py", line 628, in __next__
    data = self._next_data()
  File "C:\Users\92301\miniconda3\envs\hyspytorch\lib\site-packages\torch\utils\data\dataloader.py", line 1316, in _next_data
    idx, data = self._get_data()
  File "C:\Users\92301\miniconda3\envs\hyspytorch\lib\site-packages\torch\utils\data\dataloader.py", line 1282, in _get_data
    success, data = self._try_get_data()
  File "C:\Users\92301\miniconda3\envs\hyspytorch\lib\site-packages\torch\utils\data\dataloader.py", line 1133, in _try_get_data
    raise RuntimeError('DataLoader worker (pid(s) {}) exited unexpectedly'.format(pids_str)) from e
RuntimeError: DataLoader worker (pid(s) 46244, 40520) exited unexpectedly

Process finished with exit code 1

出现上述错误的 可以看看我附上源代码的 注释 #--------------注意点 这个部分
第一步 你需要改 num_workers=0
第二步 next(dataiter)
然后运行一下就可以
希望我的文章对你有帮助
我是炼丹的小道士,一个在ML路上前行的菜鸟
有任何问题可以加我微信 ,进行进一步交流
文章来源地址https://www.toymoban.com/news/detail-559145.html

到了这里,关于Dataloader使用时iter.next()迭代器出现错误怎么解决以及_MultiProcessingDataLoaderIter报错解决指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【 java 集合】使用迭代器 Iterator 遍历集合

    💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜 📝 个人主页:馆主阿牛🔥 🎉 支持我:点赞👍+收藏⭐️+留言📝 📣 系列专栏:java 小白到高手的蜕变🍁 💬格言:要成为光,因为有怕黑的人!🔥 上两篇文章总结了集合体系以及Collection常用方法,本节我们来

    2024年02月07日
    浏览(53)
  • 请问Stable diffusion出现这个错误怎么解决

    Loading weights [495901d34f] from D:aimodelsStable-diffusionelegantHanfuRuqun_v10.safetensors loading stable diffusion model: RuntimeError Traceback (most recent call last):   File \\\"D:aiwebui.py\\\", line 195, in initialize     modules.sd_models.load_model()   File \\\"D:aimodulessd_models.py\\\", line 424, in load_model     state_dict = get_checkpoint

    2024年02月09日
    浏览(33)
  • 什么是迭代器(Iterator)?如何使用它遍历集合?

    迭代器(Iterator)是一种设计模式,它提供了一种遍历集合(如列表、数组、映射等)中元素的方法,而无需暴露集合内部的表示细节。它将遍历和集合分离,使得可以独立地操作和遍历集合。 在许多编程语言中,迭代器是一个对象,它包含了可以遍历集合的方法。常见的迭

    2024年02月15日
    浏览(47)
  • 网站出现403 Forbidden错误的原因以及怎么解决的方法

    这几天刚接手一批新做的网站,在访问网站的时候,会时不时的出现403 Forbidden错误,浏览器会给出403 Forbidden错误提示,在打开Access Error中列出的URL之后, 出现以下错误: 403 Forbidden Access to this resource on the server is denied! Powered By LiteSpeed Web Server LiteSpeed Technologies is not responsible

    2024年02月06日
    浏览(62)
  • 【已解决】win7系统出现ntdll.dll错误模块怎么解决?

    ntdll.dll模块故障怎么办?ntdll.dll是windonws 7操作系统中重要的一个组件,是NT内核级文件,系统从ring3到ring0的入口。当Windows启动时,ntdll.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域!当我们在win7 64位系统中遇到了ntdll.dll模块故障的错误提示后该如何

    2024年02月12日
    浏览(91)
  • 网络连接不上总是出现651错误怎么办?如何解决?

    随着电脑的普及,几乎每家每户都有一台甚至多台电脑,而购买电脑之后的第一件事情就是装宽带,使电脑的功效发挥到最大化,但是很多朋友都遇到网络连接不上总是出现651的错误,那么怎么办呢?下面小编就为大家详细介绍一下,有需要的朋友可以参考一下 1、单击左下

    2024年02月08日
    浏览(71)
  • java编译出现 错误:编码 UTF-8~的不可映射字符怎么解决

            当我们在写java代码时,代码中包含中文时,编译的时候可能会出现 \\\"错误:编码 UTF-8~的不可映射字符\\\"         将文本编辑器的编码改为UTF-8就行了。          因为有些计算机默认编码是ANSI,计算机无法识别其中的中文,使得中文编译出现错误, 这时候我们将文件

    2024年02月12日
    浏览(55)
  • 双击宽带连接出现错误764没有安装智能卡读取器怎么解决?

    小编今天打开电脑, 连接宽带时出现错误764:没有安装智能卡读取器。 经过小编摸索,终于找到了解决办法,下面分享给大家,希望能给你带来一些帮助! 1、 现象描述: 连接宽带时,出现错误提示,如图所示。 2、 解决办法: 打开 我的电脑 ,点击 网上邻居 。 3、点击

    2024年02月08日
    浏览(45)
  • 电脑出现错误代码0x80070035要怎么办?教你解决错误代码0x80070035

    电脑刚开机就收到提示电脑出现错误代码0x80070035?出现这样的问题可能是电脑网络练级错误或网络路径的问题,有什么办法可以解决错误代码0x80070035的办法呢?今天就来讨论一下错误代码的问题应该如何解决。 检查网络 首先我们先排查一下电脑网络连接的问题,先检查一下

    2024年02月05日
    浏览(46)
  • 电脑出现错误代码0xc0000225怎么办,解决0xc0000225的办法

    通常情况下电脑出现0xc0000225错误代码都是在点奥蓝屏的额状态下显示的,那么应该如何解决错误代码0xc0000225的问题呢?今天本文就给大家介绍几种解决办法,希望能够给大家提供一些帮助。 解决办法一:检查硬盘连接和电线 首先,您需要确保与系统硬盘相关的连接和电缆没

    2024年02月04日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包