• 六、DataLoader


    一、DataLoader参数解析

    DataLoader官网使用手册
    在这里插入图片描述

    参数描述
    dataset说明数据集所在的位置、数据总数等
    batch_size每次取多少张图片
    shuffleTrue乱序、False顺序(默认)
    sampler
    batch_sampler
    num_workers多进程,默认为0采用主进程加载数据
    collate_fn
    pin_memory
    drop_lastTrue最后不满一个batch_size的去掉,False最后剩余多少也都要
    timeout
    worker_init_fn
    generator
    prefetch_factor
    prefetch_factor
    pin_memory_device
    import torchvision
    from torch.utils.data import DataLoader
    from torch.utils.tensorboard import SummaryWriter
    
    test_data = torchvision.datasets.CIFAR10("CIFAR_10",train=False,transform=torchvision.transforms.ToTensor())
    #Ctrl按住,点击CIFAR10,找到__getitem__类,查看返回值return img, target
    
    test_loader = DataLoader(dataset=test_data,batch_size=64,shuffle=True,num_workers=0,drop_last=False)
    #drop_last=False,最后剩余多少也都要 
    #shuffle=True,乱序
    
    #测试一下
    img,target = test_data[0]
    print(img.shape)#torch.Size([3, 32, 32])
    print(target)#3
    
    
    writer = SummaryWriter("y_log")
    i = 0
    for data in test_loader:
        imgs,targets = data
        #print(type(imgs))
        writer.add_images("test_data",imgs,i)
        i = i+1
    
    writer.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    在Terminal下运行tensorboard --logdir=y_log --port=2312,logdir为打开事件文件的路径,port为指定端口打开;
    通过指定端口2312进行打开tensorboard,若不设置port参数,默认通过6006端口进行打开。
    在这里插入图片描述
    点击该链接或者复制链接到浏览器打开即可

    在这里插入图片描述

    import torchvision
    from torch.utils.data import DataLoader
    from torch.utils.tensorboard import SummaryWriter
    
    test_data = torchvision.datasets.CIFAR10("CIFAR_10",train=False,transform=torchvision.transforms.ToTensor())
    #Ctrl按住,点击CIFAR10,找到__getitem__类,查看返回值return img, target
    
    test_loader = DataLoader(dataset=test_data,batch_size=64,shuffle=False,num_workers=0,drop_last=True)
    #drop_last=True,不满一组的舍去 
    #shuffle=False,顺序
    
    img,target = test_data[0]
    print(img.shape)#torch.Size([3, 32, 32])
    print(target)#3
    
    
    writer = SummaryWriter("y_log")
    
    for epoch in range(3):
        i = 0
        for data in test_loader:
            imgs,targets = data
            #print(type(imgs))
            writer.add_images("Epoch:{}".format(epoch),imgs,i)
            i = i+1
    
    writer.close()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    在这里插入图片描述

  • 相关阅读:
    带你了解S12直播中的“黑科技”
    压力测试-Jmeter脚本录制方案
    代码随想录算法训练营第四十六天| 完全背包、518.零钱兑换 II 、377.组合总和 Ⅳ
    深入探究ASEMI肖特基二极管MBR60100PT的材质
    成都瀚网科技:抖音上线地方方言自动翻译功能
    Python模块
    什么是单臂路由技术?
    在CentOS 7上关闭SELinux
    IO流学习
    加入网关后,输入网址报404
  • 原文地址:https://blog.csdn.net/qq_41264055/article/details/126431506