【Pytorch】An attempt has been made to start a new process before the current process has finished its

[报错解决] RuntimeError: An attempt has been made to start a new process 今天来记录一个经过查阅资料,发现上面错误对应的报错原因是,这是因为通常情况下,在linux系统中可以使用多个子进程加载数据,而在windows系统中不能。 阅读详情
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.

出错原因:

trainloader=torch.utils.data.DataLoader(dataset=trainset,batch_size=4,shuffle=True,num_workers=2)

这里使用的两个进程读取数据,多进程需要在main函数中运行,而我的这行代码没有在main函数中调用,导致的错误。
解决方案

  • 1:将num_workers设置为0,牺牲速度
  • 2:将使用trainloader的代码 使用main函数包裹
    【1】
import torch
import torchvision
import torchvision.transforms as transforms
import ssl
import torch.utils.data as Data
ssl._create_default_https_context = ssl._create_unverified_context
#下载数据集并对图片进行调整,因为torchvision数据集的输出是PILImage格式,数据域在[0,1]
#我们将其转换成标准数据域[-1,1]的张量格式
#transform 数据转换器
transform=transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))])
trainset=torchvision.datasets.CIFAR10(root='./data',train=True,download=True,transform=transform)
# 下载下来的数据放在trainset里面
trainloader=torch.utils.data.DataLoader(dataset=trainset,batch_size=4,shuffle=True,num_workers=0)
# DataLoader数据迭代器 将数据封装成DataLoader
# num_workers:两个线程读取数据
# batch_size=4 批处理

testset=torchvision.datasets.CIFAR10(root='./data',train=False,download=True,transform=transform)
testloader=torch.utils.data.DataLoader(dataset=testset,batch_size=4,shuffle=False,num_workers=0)
classes=('airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck')

#展示若干训练集的图片
#导入画图包和numpy
import matplotlib.pyplot as plt
import numpy as np

#构建展示图片的函数
def imShow(img):
    img=img/2+0.5
    #img是tensor类型的数据,tensor类型转换成numpy类型的数据
    npimg=img.numpy()
    plt.imshow(np.transpose(npimg,(1,2,0)))#维度转换成 1 2 0 这三个维度
    plt.show()

#从数据迭代器中读取一张图片
try:
    dataiter = iter(trainloader)
    images,labels=dataiter.next()

    #展示图片
    imShow(torchvision.utils.make_grid(images))
    #使用网格的形式展示图片
    #打印标签label
    print(' '.join('%5s'%classes[labels[j]] for j in range(4)))
except Exception as e:
    print(e)

【2】

import torch
import torchvision
import torchvision.transforms as transforms
import ssl
import torch.utils.data as Data
ssl._create_default_https_context = ssl._create_unverified_context
#下载数据集并对图片进行调整,因为torchvision数据集的输出是PILImage格式,数据域在[0,1]
#我们将其转换成标准数据域[-1,1]的张量格式
#transform 数据转换器
transform=transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))])
trainset=torchvision.datasets.CIFAR10(root='./data',train=True,download=True,transform=transform)
# 下载下来的数据放在trainset里面
trainloader=torch.utils.data.DataLoader(dataset=trainset,batch_size=4,shuffle=True,num_workers=2)
# DataLoader数据迭代器 将数据封装成DataLoader
# num_workers:两个线程读取数据
# batch_size=4 批处理

testset=torchvision.datasets.CIFAR10(root='./data',train=False,download=True,transform=transform)
testloader=torch.utils.data.DataLoader(dataset=testset,batch_size=4,shuffle=False,num_workers=2)
classes=('airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck')

#展示若干训练集的图片
#导入画图包和numpy
import matplotlib.pyplot as plt
import numpy as np

#构建展示图片的函数
def imShow(img):
    img=img/2+0.5
    #img是tensor类型的数据,tensor类型转换成numpy类型的数据
    npimg=img.numpy()
    plt.imshow(np.transpose(npimg,(1,2,0)))#维度转换成 1 2 0 这三个维度
    plt.show()

#从数据迭代器中读取一张图片
if __name__ == '__main__':
    try:
        dataiter = iter(trainloader)
        images, labels = dataiter.next()

        # 展示图片
        imShow(torchvision.utils.make_grid(images))
        # 使用网格的形式展示图片
        # 打印标签label
        print(' '.join('%5s' % classes[labels[j]] for j in range(4)))
    except Exception as e:
        print(e)
RuntimeError:An attempt has been made to start a new process before thecurrent process has finished。 【代码】RuntimeError:An attempt has been made to start a new process before thecurrent process has finished。 阅读详情

相关推荐

关于An attempt has been made to start a new process before the current process has finish的解决办法

在按照官方demo做cifar识别的时候,在pycharm上会出现一长串的红色字母,转去jupyter 发现并没有错,就很好奇。 对于图像识别分类的时候,在dataloader的时候有时会有num_workers的参数,这表示线程数,num_workers=0表示单线程,num_workers = 2则表示多线程。当是多线程的时候直接运行程序也许会出现这种错误。 RuntimeError: An attempt has been made to start a new process .

qq_35896136的博客 1万+

遇到:RuntimeError: An attempt has been made to start a new process before the current pr 错误应该如何解决

​ 方法等待新进程完成。最后,我们输出"新进程已完成"。请注意,这只是一个简单的示例代码,你需要根据你实际使用的编程语言和相关库进行修改和扩展。确保在程序中正确处理和调度进程,以确保顺序和正确的进程间通信。在这个示例中,我们创建了一个主进程,然后在主进程中启动一个新的子进程。在主进程中,我们输出"主进程已启动",然后创建一个新的 ​。所以示例代码的内容将取决于你具体使用的编程语言和相关库。​​ 对象,并指定要执行的函数为 ​。​​ 方法启动新进程,并使用 ​。

牛肉胡辣汤 1万+

PyTorch出现:RuntimeError: An attempt has been made to start a new process...报错

1.查看显卡:第一步:同时按下键盘的win+r键,输入cmd第二步:随后输入nvidia-smi2.查看下载安装的包:conda listconda list3.问题报错。

XU_MAN_的博客 1330

RuntimeError: An attempt has been made to start a new process before the current process解决(亲测有效)

RuntimeError: An attempt has been made to start a new process before the current process解决(亲测有效)

不点儿的博客 9519

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

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

weixin_54434052的博客 1044

RuntimeError: An attempt has been made to start a new process before the current pr

pytorch 加载数据时报错: RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase. This probably means that y...

jacke121的专栏 4万+

学习pytorch基础之图像分类器代码报错解决方案:RuntimeError: An attempt has been made to start a new process before...

图像分类器练习作为学习pytorch基础中的一课,生动给大家展示了如何将多组图片分成多个种类。原教程可以参照链接:https://github.com/fendouai/PyTorchDocs/blob/master/SecondSection/training_a_classifier.md 但是pytorch在训练的过程中,可能会出现一种报错: RuntimeError: An attempt has been made to start a new process before the current

weixin_44451812的博客 756

AD20/Altium designer——元器件批量命名与编号的高效技巧

本文详细介绍了在AD20/Altium Designer中实现元器件批量命名与编号的高效技巧。通过解析核心的“原理图标注”功能,从基础全局操作到进阶的按模块分区、利用标识符及合并BOM等智能方法,帮助硬件工程师彻底告别手动编号,大幅提升设计效率与文档规范性,并融入了一套完整的实战工作流。

whisky的博客 569

pytorch使用出现"RuntimeError: An attempt has been made to start a new process before the..." 解决方法

今天在运行Pytorch手写数字识别代码时,出现了如下错误: 其实挺奇怪的… 因为这段代码是前几天刚写完跑成功的,今天再跑就出问题了 至于解决方法也很简单,出错提到了是多线程的缘故,那么就有如下两种: 去掉num_workers参数 # train_loader = Data.DataLoader(dataset=train_data, batch_size=BATCH_SIZE, shuf...

MaloFleur 3万+

用友U8库龄分析避坑指南:物料出入库日期计算的5个常见错误

本文深入剖析了在用友U8系统中进行库龄分析时,物料出入库日期计算的五个常见陷阱。从数据源选择、业务类型过滤、计价方式逻辑、期初数据处理到查询性能优化,逐一解析错误根源并提供避坑指南,帮助企业获得准确的库龄数据,有效管理库存与资金风险。

weixin_29209801的博客 457

解决uc浏览器劫持video标签问题

解决uc视频悬浮播放 ,video标签被浏览器劫持 ,vide0适配

smile_y_y的博客 3453

PyTorch出现:RuntimeError: An attempt has been made to start a new process...报错 (已解决)

PyTorch出现:RuntimeError: An attempt has been made to start a new process...报错 (已解决) 最近从新调试一段pytorch 代码,以前的服务器上完全没问题,但换了一台机器,重新安装了新版本的 cuda,anaconda,pytorch 等,以前的代码出现各种版本不适合的问题。一天下来,解决了 n 个问题。 问题: 现在说说这个问题。运行 pytorch 时出现的情况如下: RuntimeError: ...

u014546828的博客 1万+

Python+OpenCV实战:雨天车牌识别准确率提升300%的5个关键技巧

本文针对雨天车牌识别准确率骤降的难题,分享了五个基于Python和OpenCV的实战技巧。通过暗通道先验去雾、雨纹抑制、光照不变量颜色空间转换、多尺度自适应阈值分割以及融合传统特征与轻量级深度学习的混合识别策略,系统性地提升了算法在恶劣天气下的鲁棒性。这些方法能有效解决图像模糊、对比度低、字符断裂粘连等问题,为智能交通等实际应用提供可靠解决方案。

k8l9m0n的博客 717

RuntimeError: An attempt has been made to start a new process before the current process(解决方案))

在使用pytorch训练模型时,遇到了这样的错误: 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 forg

thy0000的博客 1万+

乐企增值税及附加税费(一般纳税人适用)申报表填报能力说明文档V3.009

申报表填报,是指企业在自有业务系统中将算税结果数据按预填规则要求加工汇总后,进行申报表填报的过程。申报表填报前对纳税申报所需的前提条件进行校验。校验通过后,应用前序算税结果数据及预填规则进行纳税申报表预填,生成申报表数据。申报表数据通过申报业务规则校验后,经纳税人确认即完成申报表填报业务。

记录点滴 347

【Go语言实战】(2) Gin+Vue 电子商城

618来!!不用纠结去哪里剁手了!直接自己安排一个商场不香吗??

面向生活编程 4827

pytorch 报错An attempt has been made to start a new process before the current process has

pytor调试过程中出现如下错误: 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 ...

一一 2354

2023华为od机试C卷【最富裕的小家庭】C语言 实现

在一颗树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为个小家庭。现给你一颗树,请计算出最富裕的小家庭的财富和。

MISAYAONE的博客 502

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

https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#sphx-glr-beginner-blitz-cifar10-tutorial-py import torch import torchvision import torchvision.transforms as transforms import matp...

yaoyutian的博客 2万+

【华为OD机试真题】439、精准核酸检测 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS)

题目描述 >为了达到新冠疫情精准防控的需要,为了避免全员核酸检测带来的浪费,需要精准圈定可能被感染的人群现在根据传染病流调以及大数据分析,得到了每个人之间在时间、空间上是否存在轨迹的交叉。现在给定一组确诊人品编号(X1 X2 X3.....n)在所有人当中,找出哪些人票要进行核酸检测,输出需要进行核酸检测的人数。(注意:确诊病例自身不需要再做核酸检) >  需要进行核酸检测的人,是病毒传播链条上的所有人员,即有可能通过确诊病例所能传播到的所有人   例如:A是确诊病例,A和B有接触、B和

KJ.JK 1438

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

RuntimeError: An attempt has been made to start a new process before the current process has finish

今天在学习pytorch的时候尝试运行以下程序: transform = transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) trainset = torchvision.datasets.CIFAR10(root='./data', train=True,

S_imony的博客 918

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【异常错误】An attempt has been made to start a new process before the current process

解决方法: 1.去掉num_workers参数(或者将num_workers=0) 你直接crtl+shift+F全局搜索num_workers,然后让它等于0就可以解决 2.在跑epoch之前,加上if __name__=='__main__': 可以看到我的控制台提示在test.py的for这里出错,那么此时我就加入if __name__=='__main__':,然后将for的代码块放进去 修改好的样子: ...

Drug discovery 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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

李沐pytorch课程

TOB777的博客 1490

Windows10 下运行 PyTorch 报错 RuntimeError: An attempt has been made to start a new process before the

问题描述 Windows 10 下运行 PyTorch 程序,报错如下: 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

sdnuwjw的博客 655
上一篇: 【Pytorch】下载CIFAR10数据集报错:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certi
下一篇: 【PyTorch】2.2 使用Pytorch构建一个分类器(使用真实数据集CIFAR10)
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值