• 六、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

    在这里插入图片描述

  • 相关阅读:
    Linux内存寻址
    JS教程之 ElectronJS 自定义标题栏
    LC打怪录 选择排序 215.Kth Largest Element in an Array
    USB主机驱动器分析
    合并有序链表
    MySQL主从数据库搭建
    【C语言】程序环境深度剖析
    Vue的computed和watch的区别是什么?
    08 | XenCentrer的安装及使用
    2023最新electron 进程间通讯的几种方法
  • 原文地址:https://blog.csdn.net/qq_41264055/article/details/126431506