DataLoader worker (pid(s) x, x) exited unexpectedly 最正确的解决方法和解析

import torch
import torch.utils.data as Data 
import numpy as np

data = np.asarray([[1, 2], [3, 4],[5, 6], [7, 8]])
label = np.asarray([[0], [1], [0], [2]])

#创建子类
class subDataset(Data.Dataset):
    #初始化,定义数据内容和标签
    def __init__(self, Data, Label):
        super(subDataset, self).__init__()
        self.Data = Data
        self.Label = Label
    #返回数据集大小
    def __len__(self):
        return len(self.Data)
    #得到数据内容和标签
    def __getitem__(self, index):
        data = torch.Tensor(self.Data[index])
        label = torch.Tensor(self.Label[index])
        return data, label

if __name__ == '__main__':
    dataset = subDataset(data, label)
    print(dataset)
    print('dataset大小为 :', dataset.__len__())
    print(dataset.__getitem__(0))
    print(dataset[0])
    print()


    print('----------创建DataLoader迭代器-----------')
    dataloader = Data.DataLoader(dataset, batch_size= 2, shuffle = False, num_workers= 4)
    for i, item in enumerate(dataloader):
        print('batch_i:', i)
        data, label = item
        print('data:', data)
        print('label:', label)

以上代码如果在jupyter notebook中运行会报错,因为一般 jupyter notebook 是单核运行的。

解决方案:

使用正常py文后缀的文件类型运行代码,既可多线程运行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值