gpt4 book ai didi

解决pytorch DataLoader num_workers出现的问题

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章解决pytorch DataLoader num_workers出现的问题由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

最近在学pytorch,在使用数据分批训练时在导入数据是使用了 DataLoader 在参数 num_workers的设置上使程序出现运行没有任何响应的结果 ,看看代码 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import torch  #导入模块
import torch.utils.data as Data
 
BATCH_SIZE = 8 #每一批的数据量
 
x = torch.linspace( 1 , 10 , 10 ) #定义X为 1 到 10 等距离大小的数
y = torch.linspace( 10 , 1 , 10 )
 
#转换成torch能识别的Dataset
torch_dataset = Data.TensorDataset( x,y) #将数据放入 torch_dataset
 
loader = Data.DataLoader(
     dataset = torch_dataset,   #将数据放入loader
     batch_size = BATCH_SIZE, #每个数据段大小为 BATCH_SIZE=5
     shuffle = True #是否打乱数据的排布
     num_workers = 2 #每次提取数据多进进程为2
     )
for epoch in range ( 3 ):
  
   for step,(batch_x,batch_y) in enumerate (loader):
    
     print ( 'epoch' ,epoch, '|step:' ,step, " | batch_x" ,batch_x.numpy(),
 
        '|batch_y:' ,batch_y.numpy())

(以上代码取莫烦python教学视频,教学视频中没有报错) 。

程序就停止成这样了 。

解决pytorch DataLoader num_workers出现的问题

上网查询没有得到有用的东西,因为程序没有报错,就是没有任何反应,(没有反应可能跟电脑或者编译器有关,我使用的是anconda spyder)于是决定自己找找 。

期初我采用在语句后面加 print('1')检测程序停在了什么地方,(其实这是一种笨方法,在这里可以采用断点调试)程序停在了 for step,(batch_x,batch_y) in enumerate(loader)

我以为是enumerate的问题,查资料发现这就是一个可返回列表元素和键值的函数,不存在问题 。

继续排查,把目光放在了loader,于是查询了DataLoader的参数 。

DataLoader的函数定义如下:

?
1
2
3
DataLoader(dataset, batch_size = 1 , shuffle = False , sampler = None ,
num_workers = 0 , collate_fn = default_collate, pin_memory = False ,
drop_last = False )

1. dataset:加载的数据集(Dataset对象) 。

2. batch_size:batch size 。

3. shuffle::是否将数据打乱 。

4. sampler: 样本抽样,后续会详细介绍 。

5. num_workers:使用多进程加载的进程数,0代表不使用多进程 。

6. collate_fn: 如何将多个样本数据拼接成一个batch,一般使用默认的拼接方式即可 。

7. pin_memory:是否将数据保存在pin memory区,pin memory中的数据转到GPU会快一些 。

8. drop_last:dataset中的数据个数可能不是batch_size的整数倍,drop_last为True会将多出来不足一个batch的数据丢弃 。

发现我所定义的几个参数只有num_workers嫌疑最大,于是将参数值改成了默认值 0,程序可以运行了,(一把老泪纵横) 。

看看进程是什么鬼 发现在这里好像没啥用(具体自己上网查查) 。

解决pytorch DataLoader num_workers出现的问题

以上这篇解决pytorch DataLoader num_workers出现的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/weixin_42236288/article/details/80893882 。

最后此篇关于解决pytorch DataLoader num_workers出现的问题的文章就讲到这里了,如果你想了解更多关于解决pytorch DataLoader num_workers出现的问题的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com