首页 > 其他分享 >深度学习Pytorch(三)

深度学习Pytorch(三)

时间:2023-03-12 16:58:51浏览次数:60  
标签:img writer 学习 test Pytorch transforms 深度 print trans

深度学习Pytorch(三)

一、Transforms的使用

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
# Python的用法-》tensor数据类型
# 通过transforms.ToTensor去看两个问题

# 2、为什么我们需要Tensor数据类型

# 绝对路径 https://xuyuya.oss-cn-guangzhou.aliyuncs.com/img_for_typora/20230310104902.png
# 相对路径 dataset/train/ants/0013035.jpg
img_path="dataset/train/ants/0013035.jpg"
img=Image.open(img_path)

writer=SummaryWriter("logs")

# 1、transforms该如何使用(Python)
tensor_trans=transforms.ToTensor()
tensor_img=tensor_trans(img)
writer.add_image("Tensor_img",tensor_img)

writer.close()

run后,打开终端,输入 即可查看结果

常见Transforms的使用:

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms


writer=SummaryWriter("logs")
img=Image.open("dataset/train/ants/0013035.jpg")
print(img)

# ToTensor
trans_totensor=transforms.ToTensor()
img_tensor=trans_totensor(img)
writer.add_image("ToTensor",img_tensor)

#Normalize归一化
print(img_tensor[0][0][0])
trans_norm=transforms.Normalize([1,3,5],[3,2,1])
img_norm=trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("Nomalize",img_norm)

#Resize
print(img.size)
trans_resize=transforms.Resize(768)
#img PIL -> resize -> img_resize PIL
img_resize=trans_resize(img)
#img_resize PIL -> totensor -> img_resize tensor
writer.add_image("Resize",img_resize,0)
print(img_resize)

#Compose - resize - 2
trans_size_2 = transforms.Resize(512)
#PIL -> PIL -> tensor
trans_compose = transforms.Compose([trans_size_2,trans_totensor])
img_resize_2 = trans_compose(img)
writer.add_image("Resize",img_resize_2,1)

#RandomCrop随机裁剪
trans_random = transforms.RandomCrop(512)
trans_compose_2 = trans_compose([trans_random,trans_totensor])
for i in range(10):
    img_crop = trans_compose_2(img)
    writer.add_image("RandomCrop",img_crop,i)  
writer.close()

二、torchvison中数据集的使用

官方文档:https://pytorch.org/vision/stable/datasets.html#

import torchvision
from torch.utils.tensorboard import SummaryWriter

dataset_transform = torchvision.transforms.Compose([
    torchvision.transforms.ToTensor()
])
train_set = torchvision.datasets.CIFAR10(root="./dataset",train=True,transform=dataset_transform,download=True)
test_set = torchvision.datasets.CIFAR10(root="./dataset",train=False,transform=dataset_transform,download=True)

# print(test_set[0])
# print(test_set.classes)
#
# img,target = test_set[0]
# print(img)
# print(target)
# print(test_set.classes[target])
# img.show()

# print(test_set[0])

writer = SummaryWriter("p10")
for i in range(10):
    img,target = test_set[i]
    writer.add_image("test_set",img,i)

writer.close()

三、DataLoader的使用

import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
#准备的测试数据集
test_data = torchvision.datasets.CIFAR10(root="./dataset",train=False,transform=torchvision.transforms.ToTensor())
# batch_size一次抓取多少张,shuffle是否在两轮抓取中打乱顺序,num_workers用多少进程取数据,drop_last是否丢弃最后一次抓取不足的数据
test_loader = DataLoader(dataset=test_data,batch_size=64,shuffle=True,num_workers=0,drop_last=False)

#测试数据集中第一张图片及target
img,target = test_data[0]
print(img.shape)
print(target)

writer = SummaryWriter("dataloader")

for epoch in range(2):
    step = 0
    for data in test_loader:
        imgs, targets = data
        # print(imgs.shape)
        # print(targets)
        writer.add_images("Epoch: {}".format(epoch), imgs, step)
        step = step + 1

writer.close()

更多内容请关注我的博客:bgemini.com

标签:img,writer,学习,test,Pytorch,transforms,深度,print,trans
From: https://www.cnblogs.com/wisteria/p/17208453.html

相关文章

  • 迁移学习(FACT)《A Fourier-based Framework for Domain Generalization》
    论文信息论文标题:AFourier-basedFrameworkforDomainGeneralization论文作者:QinweiXu,RuipengZhang,YaZhang,YanfengWang,QiTian论文来源: CVPR2021论文地......
  • 韩顺平java学习笔记——概述
    Java执行流程分析Java文件(源文件)—javac编译->.class文件(字节码文件)--java运行->结果什么是编译Javachello.java1、 有了java源文件,通过编译器将其变异成JVM可以......
  • Unity面试题一日一讲 B站游戏石匠视频讲解 学习笔记
    三叶虫也能看懂的Unity面试题一日一讲求最少需要多少场赛跑,可以求出其中跑的最快的三头猪。(最少多少场可以百分百保证求出正确结果)答案:9场。堆栈问题有如下一个类......
  • C++学习注意点
    我们在使用STL中string容器进行查找时需要注意到find()和rfind()的使用特点,find()是从左往右进行查找,而rfind()是从右往左查找。stringstr111="abcdefbc";intpos1=......
  • Gin学习笔记--中间件的编写与使用
    中间件在web应用服务中,完整的一个业务处理在技术上包括客户端操作,服务端处理,返回处理结果给客户端三个步骤。在实际的业务开发和处理中,会有更复杂的业务和需求场景。一个......
  • 个人工作流程学习收获
    在日常的工作中,我们都会有自己的工作方式和工作流程。每个人的工作方式都可能不同,但在实际工作中,我们需要尽可能地统一工作流程,以便提高工作效率和质量。本播客介绍个人工......
  • selenium学习记录
    环境配置执行driver=webdriver.Firefox()出错Message:'geckodriver'executableneedstobeinPATH下载geckodriver.exe,下载地址:mozilla/geckodriver。将文件解......
  • 算法竞赛学习资源整理
    一、测评1、国内OJluogu/vijos/codevsLOJ/UOJ/BZOJPOJ/Virtual/Open2、国外OJUSACOUVaCF二、资源1、教程OIWikistandFordCS97SI2、书籍刘汝佳/李煜东/秋叶拓哉(竞赛圈)一本......
  • Git入门指令学习
    基础指令在进行以下操作前,请确保你已经安装了git,git下载链接,具体详细步骤请自行检索。初始化git仓库,用于开始一项新项目时为该项目初始化仓库进行代码托管例如我现在......
  • 学习ASP.NET Core Blazor编程系列二十八——JWT登录(3)
    学习ASP.NETCoreBlazor编程系列文章之目录学习ASP.NETCoreBlazor编程系列一——综述学习ASP.NETCoreBlazor编程系列二——第一个Blazor应用程序(上)学习A......