zoukankan      html  css  js  c++  java
  • 28:自定义数据集的收集

    1:自定义数据集

    [注]每一个文件中对应弄干张相同种类但是不同状态的图片。比如:若干张不同状态小狗的图片。

    (1.1)初始化

    class Pokemon(Dataset):

    def __int__(self,root,resize,mode):

     【注】上图中第二张图片,sorted的位置错误,应该用在sorted(os.listdir(os.path.join(root)))

     【注】os.listdir()可以将根目录下包括目录名以及文件名都列出来(注顺序是随机的)。os.path.isdir(os.path.join(root,name))判断文件名是否是目录文件名。

    【注】sorted()可以对所有可迭代对象进行排序操作。sort()是针对于list的排序操作。

    【注】初始化参数name2label是一个映射表(【注】其存储以字典的形式存储):将string类型的label映射成一个与之对应的编号表。例如:原始lable为[cat,dog,fish],映射成lable[0,1,2],将其对应关系以{'cat':0,'dog':1,'fish',2}字典的形式存储。

    (1.2)加载数据

     if:需要的指定的csv文件不存在,得需要先对数据路径进行保存,形成指定格式(path<数据路径> lable<为int类型>)的.csv文件然后进行加载。

    [注]'os.sep'为\

     最终结果生成指定类型文件的数据,数据格式为(数据,标签):

     

    else :内容格式为:path(数据存储路径) lable(为int类型)的文件存在,则直接可以进行数据加载

    (1.3)数据的划分:train 60%,val 20%,test 20%.

     (1.4):数据处理,将数据进行变形(以达到数据增强的目的),增强数据并且转换成可以用pytorch处理的tensor类型。

     return img,label

    【注】数据的变形(增强)操作:Resize()放大缩小,RandomRotation()旋转,CenterCrop()中心裁剪,ToTenser(),Normalize()规范化将数据压缩到-1,1之间

    【注】Normalize()之后,可视化会出现问题,所以要进行denormalize()

     【注】transforms.Compose{}转换器.lambda pa1:主体    左边为指定输入参数pa1,右边为lambda的主体。

    【注】Python图像处理 PIL中convert(‘L’)函数原理,PIL有九种不同模式: 1,L,P,RGB,RGBA,CMYK,YCbCr,I,F。

    img=img.convert()可以把图片转为指定格式的图片。https://blog.csdn.net/fanlily913/article/details/106571186详细参考该篇博客。

    【注】mean=[0.485,0.456,0.406]三个值分别为R,G,B三个通道上的均值。std=[0.229,0.224,0.225]分别为R,G,B三个通道上的方差。

    (1.5)通过可视化进行验证

    未进行normalize()的可视化验证

    进行了normalize()的可视化验证

     [注]需要开启visdom进程:python -m visdom.server

     (1.6)批量(batch)加载数据

     【注】需要导入:from torch.utils.data import Dataset,DataLoader 

    2:使用如下代码也能完成数据集的加载工作

    (2.1)一行代码完成数据加载

     【注】这只能完成按照比较常规的目录存储的数据

    【注】当用cpu时,可以通过DataLoader(db,batch_size=,num_workers=)开启多线程。

    (2.2)如何查看成员变量:自动编码的表格

     

  • 相关阅读:
    1091 Acute Stroke
    1092 To Buy or Not to Buy
    1093 Count PAT's
    1094 The Largest Generation
    1095 Cars on Campus
    1096 Consecutive Factors
    1097 Deduplication on a Linked List
    2.掌握Python基本数据类型,从python陌路人到熟人!
    Python基础语法,他其实很贵!
    某外企软件测试面试题整理(更新中)
  • 原文地址:https://www.cnblogs.com/jiafeng1996/p/15141622.html
Copyright © 2011-2022 走看看