• 五、torchvision


    一、下载CIFAR-10数据集

    CIFAR-10数据集官网
    通过阅读官网给的解释可以大概了解到,一共6w张图片,每张图片大小为32×32,5w张训练图像,1w张测试图像,一共由十大类图像。

    CIFAR10官网使用文档
    在这里插入图片描述
    torchvision.datasets.CIFAR10(root="./CIFAR_10",train=True,download=True)

    参数描述
    root字符串,指明要下载到的位置,或已有数据集存放的位置
    train若为True则下载训练集,若为False则下载册数集
    transform一个函数/转换,它接收PIL图像并返回转换后的版本
    target_transform接收目标并对其进行转换的函数/转换
    download若为True则会从官网进行下载,若为False则不下载
    import torchvision
    
    train_set = torchvision.datasets.CIFAR10(root="./CIFAR_10",train=True,download=True)
    test_set = torchvision.datasets.CIFAR10(root="./CIFAR_10",train=False,download=True)
    
    • 1
    • 2
    • 3
    • 4

    若下载慢,可以通过复制蓝色超链接,进行通过浏览器等方式下载
    在这里插入图片描述

    二、将CIFAR-10数据集中的图像上传至tensorboard

    调试阶段
    以训练集数据为例进行调试

    import torchvision
    
    train_set = torchvision.datasets.CIFAR10(root="./CIFAR_10",train=True,download=True)
    test_set = torchvision.datasets.CIFAR10(root="./CIFAR_10",train=False,download=True)
    
    print(train_set[0])#(, 6)
    #由输出结果大致可以看出,结构为 image和target也就是图片信息和所属类别
    img,target = train_set[0]
    print(img)#  图片信息
    print(target)#6 所属类别,classes中有总共类别
    print(train_set.classes[target])#frog  查看详细的类别
    
    img.show()#因为img是PIL类别,故可以通过show方法进行展示
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    实战阶段
    这里还是以训练集数据为例

    import torchvision
    from torch.utils.tensorboard import SummaryWriter
    
    dataset_transform = torchvision.transforms.Compose([torchvision.transforms.ToTensor()])
    #这里通过Compose方法进行transform操作组合
    #图片太小,也没必要进行裁剪等操作,图片类型为PIL,只需要通过ToTensor方法转换成tensor类型就行了
    
    train_set = torchvision.datasets.CIFAR10(root="./CIFAR_10",train=True,transform=dataset_transform,download=True)
    test_set = torchvision.datasets.CIFAR10(root="./CIFAR_10",train=False,transform=dataset_transform,download=True)
    
    print(train_set[0])#(tensor([[[0.2314, 0.1686, 0.1961,  ..., 0.6196, 0.5961, 0.5804],......
    #可以看出,这里的数据集已经变成了tensor类型,可以直接上传至tensorboard中
    
    writer = SummaryWriter("y_log")
    for i in range(30):#这里以训练集前30张数据进行上传
        img,target = train_set[i]
        writer.add_image("train_set",img,i)
    
    writer.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

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

  • 相关阅读:
    Redis分布式锁实现Redisson 15问
    5G毫米波通信中的关键技术
    docker安装skyWalking笔记
    java-php-python-车辆调度管理系统计算机毕业设计
    怎么样去图片水印?用这三招快速消除水印
    python生成docx文件
    从后端开发转大数据开发怎么样?
    JAVA小游戏 “拼图”
    GJB软件需求规格说明-编制指南
    go-cqhttp权限管理
  • 原文地址:https://blog.csdn.net/qq_41264055/article/details/126429546