zoukankan      html  css  js  c++  java
  • 我又来了=.=

    有点不幸,今天又遇到困难了,不过幸运的是解决了

    问题描述

    先上代码

    # 根据图片目录创建数据集
    ds_train = datasets.ImageFolder("./data/cifar2/train",
                                   transform=transform_train,
                                   target_transform=lambda t:torch.tensor([t]).float())
    ds_valid = datasets.ImageFolder("./data/cifar2/test",
                                   transform=transform_train,
                                   target_transform=lambda t:torch.tensor([t]).float())
    print(ds_train.class_to_idx)
    
    

    从上面的代码可以看出ImageFolder函数的target_transform参数使用lambda表达式写的,但是应该是版本问题,我的pytorch版本是12,所以运行这个的时候就报错,如下:

    PicklingError: Can't pickle <function <lambda> at 0x000002A5B55618C8>: attribute lookup <lambda> on __main__ failed
    

    解决办法

    其实很简单,但是我一直没想到,这个是这个参数不接受lambda表达式,那可以直接传函数进去就行了。
    代码如下:

    def transformTarget(t):
        return torch.tensor([t]).float()
    # 根据图片目录创建数据集
    ds_train = datasets.ImageFolder("./data/cifar2/train",
                                   transform=transform_train,
                                   target_transform=transformTarget)
    ds_valid = datasets.ImageFolder("./data/cifar2/test",
                                   transform=transform_train,
                                   target_transform=transformTarget)
    
    print(ds_train.class_to_idx)
    

    问题2:

    其实也不是问题啦,是个bug,同样先上代码

    # 使用DataLoader加载数据集
    dl_train = DataLoader(ds_train, batch_size=50, shuffle=True, num_workers=2)
    dl_valid = DataLoader(ds_valid, batch_size=50, shuffle=True, num_workers=2)
    

    我使用的win10的环境,DataLoader使用多线程的时候就会如下

    BrokenPipeError: [Errno 32] Broken pipe
    

    看了一些博客之后说这是个bug,具体可以看这个链接

    我的解决办法就是直接不用多线程了,毕竟我还只是处于初学者,希望以后能用一下吧(Ubuntu我会来的!!!

    吃饭去了,溜了溜了...

  • 相关阅读:
    如何实现多个异步同步执行?
    Treap学习笔记
    实验
    bzoj2876 [NOI2012]骑行川藏(拉格朗日乘数法)
    [SCOI2007]最大土地面积(旋转卡壳)
    Splay学习笔记
    计算几何学习笔记
    [CQOI2006]凸多边形(半平面交)
    大数的乘法(C++)
    商人过河问题(DFS)
  • 原文地址:https://www.cnblogs.com/nanjibin/p/13751073.html
Copyright © 2011-2022 走看看