Pytorch中如何加载数据、Tensorboard、Transforms的使用

这篇具有很好参考价值的文章主要介绍了Pytorch中如何加载数据、Tensorboard、Transforms的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Pytorch中如何加载数据
在Pytorch中涉及到如何读取数据,主要是两个类一个类是Dataset、Dataloader
Dataset 提供一种方式获取数据,及其对应的label。主要包含以下两个功能:
如何获取每一个数据以及label
告诉我们总共有多少的数据

Dataloader,可以对数据进行打包,为后面的网络提供不同的数据形式。

二、Tensorboard的使用,用来观察训练结果

from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter("log")

# writer.add_image()

for i in range(100):
    writer.add_scalar("y=x", i, i)

writer.close()

在Terminal中先切换到conda activate pytorch
使用命令 tensorboard --logdir=logs
Pytorch中如何加载数据、Tensorboard、Transforms的使用,机器学习,pytorch,人工智能,python

TensorBoard的使用
1、使用add_image()方法

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
# 利用openCV中的numpy库可以获得numpy型的图片

writer = SummaryWriter("log")
img_path = "../dataset/bees/26589803_5ba7000313.jpg"
img_PIL = Image.open(img_path)    # 打开图片
img_array = np.array(img_PIL)     # 图片转换
print(type(img_array))   # 打印图片类型
print(img_array.shape)  # 打印图片格式

writer.add_images("test", img_array, 2, dataformats='HWC')  # 根据img_array.shape来指定,如果不指定dataformats就会报错
# y = 2x
for i in range(100):
    writer.add_scalar("y=2x", 2*i, i)

writer.close()

Pytorch中如何加载数据、Tensorboard、Transforms的使用,机器学习,pytorch,人工智能,python
三、Transforms的使用
transform表示对图片进行一些变换
python的用法 -> tensor数据类型
通过transform.ToTensor去解决两个问题:
transforms该如何使用(Python)
为什么我们需要Tensor的数据类型?
Pytorch中如何加载数据、Tensorboard、Transforms的使用,机器学习,pytorch,人工智能,python

from torchvision import transforms
from PIL import Image

img_path = "../dataset/bees/10870992_eebeeb3a12.jpg"
img = Image.open(img_path)
tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)
print(tensor_img)

运行后的结果

D:\tools\anaconda\envs\pytorch\python.exe D:/code/captcha_ocr-main/learn/transforms.py
tensor([[[0.5725, 0.5725, 0.5725,  ..., 0.5686, 0.5725, 0.5765],
         [0.5725, 0.5725, 0.5725,  ..., 0.5686, 0.5725, 0.5765],
         [0.5686, 0.5686, 0.5725,  ..., 0.5686, 0.5725, 0.5765],
         ...,
         [0.5490, 0.5647, 0.5725,  ..., 0.6314, 0.6235, 0.6118],
         [0.5608, 0.5765, 0.5843,  ..., 0.5961, 0.5843, 0.5765],
         [0.5725, 0.5843, 0.5922,  ..., 0.5647, 0.5529, 0.5490]],

        [[0.4471, 0.4471, 0.4471,  ..., 0.4235, 0.4275, 0.4314],
         [0.4471, 0.4471, 0.4471,  ..., 0.4235, 0.4275, 0.4314],
         [0.4431, 0.4431, 0.4471,  ..., 0.4235, 0.4275, 0.4314],
         ...,
         [0.4000, 0.4157, 0.4235,  ..., 0.4706, 0.4627, 0.4510],
         [0.4118, 0.4275, 0.4353,  ..., 0.4431, 0.4314, 0.4235],
         [0.4235, 0.4353, 0.4431,  ..., 0.4118, 0.4000, 0.3961]],

        [[0.2471, 0.2471, 0.2471,  ..., 0.2588, 0.2627, 0.2667],
         [0.2471, 0.2471, 0.2471,  ..., 0.2588, 0.2627, 0.2667],
         [0.2431, 0.2431, 0.2471,  ..., 0.2588, 0.2627, 0.2667],
         ...,
         [0.2157, 0.2314, 0.2392,  ..., 0.2510, 0.2431, 0.2314],
         [0.2275, 0.2431, 0.2510,  ..., 0.2196, 0.2078, 0.2000],
         [0.2392, 0.2510, 0.2588,  ..., 0.1961, 0.1843, 0.1804]]])

Process finished with exit code 0

加载tensor类型的图片:

from torchvision import transforms
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
img_path = "../dataset/bees/10870992_eebeeb3a12.jpg"
img = Image.open(img_path)
writer = SummaryWriter("log")
tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)
writer.add_image("Tensor_img", tensor_img)
writer.close()

四、常见的transforms类的使用

  1. ToTensor类
    将PIL图片转换成tensor图片。
from torchvision import transforms
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
# Tensor的使用
writer = SummaryWriter("log")
img_path = "../dataset/bees/10870992_eebeeb3a12.jpg"
img = Image.open(img_path)
print(img)
tensor_trans = transforms.ToTensor()    # 创建ToTensor()对象
tensor_img = tensor_trans(img)    # 传入图片参数,将PIL图片转换成tensor图片
writer.add_image("Tensor_img", tensor_img)
writer.close()

Pytorch中如何加载数据、Tensorboard、Transforms的使用,机器学习,pytorch,人工智能,python
2. Normalize类

对tensor类型的图片进行归一化处理。
Normalize的使用:归一化处理
公式:output[channel] = (input[channel] - mean[channel]) / std[channel]

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

# Tensor的使用
writer = SummaryWriter("log")
img_path = "../dataset/bees/10870992_eebeeb3a12.jpg"
img = Image.open(img_path)
print(img)


tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)

writer.add_image("Tensor_img", tensor_img)

# Normalize的使用
print(tensor_img[0][0][0])    # 归一化处理之前的数据
trans_norm = transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])
img_norm = trans_norm(tensor_img)
print(img_norm[0][0][0])     # 归一化处理后的结果
writer.add_image("Normalize", img_norm)

writer.close()

Pytorch中如何加载数据、Tensorboard、Transforms的使用,机器学习,pytorch,人工智能,python
Pytorch中如何加载数据、Tensorboard、Transforms的使用,机器学习,pytorch,人工智能,python
3. Resize类:
重置图片大小。

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

# Tensor的使用
writer = SummaryWriter("log")
img_path = "../dataset/bees/10870992_eebeeb3a12.jpg"
img = Image.open(img_path)
print(img)


tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)

writer.add_image("Tensor_img", tensor_img)

print(tensor_img[0][0][0])    # 归一化处理之前的数据
trans_norm = transforms.Normalize([1, 3, 5], [3, 2, 1])
img_norm = trans_norm(tensor_img)
print(img_norm[0][0][0])     # 归一化处理后的结果
writer.add_image("Normalize", img_norm)

writer.close()

# Resize的使用:重置图片大小
print(img.size)    # (500, 464) 
trans_resize = transforms.Resize((512, 512))

img_resize = trans_resize(img)
print(img_resize)   # <PIL.Image.Image image mode=RGB size=512x512 at 0x2A17E774248> 
 
img_resize = tensor_trans(img_resize)
writer.add_image("Resize", img_resize, 0)
print("" + img_resize)
writer.close()

Pytorch中如何加载数据、Tensorboard、Transforms的使用,机器学习,pytorch,人工智能,python
Pytorch中如何加载数据、Tensorboard、Transforms的使用,机器学习,pytorch,人工智能,python
4. Compose的使用
等比例缩放。
Compose的使用:整体缩放,不改变高宽比例
Compose()中的参数需要的是一个列表,列表中的数据需要的是transforms类型。
即 Compose([transforms参数1, transforms参数2, …])

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

# Tensor的使用
writer = SummaryWriter("log")
img_path = "../dataset/bees/10870992_eebeeb3a12.jpg"
img = Image.open(img_path)
print(img)


tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)

writer.add_image("Tensor_img", tensor_img)

print(tensor_img[0][0][0])    # 归一化处理之前的数据
trans_norm = transforms.Normalize([1, 3, 5], [3, 2, 1])
img_norm = trans_norm(tensor_img)
# print(img_norm[0][0][0])     # 归一化处理后的结果
writer.add_image("Normalize", img_norm)


# Resize的使用:重置图片大小
print(img.size)    # (500, 464)
trans_resize = transforms.Resize((512, 512))

img_resize = trans_resize(img)
print(img_resize)   # <PIL.Image.Image image mode=RGB size=512x512 at 0x2A17E774248>

# Compose的使用
img_resize = tensor_trans(img_resize)
writer.add_image("Resize", img_resize, 0)
# print(img_resize)
trans_resize_2 = transforms.Resize(1024)
trans_compose = transforms.Compose([trans_resize_2, tensor_trans])
img_resize_2 = trans_compose(img)
writer.add_image("Resize", img_resize_2, 1)

writer.close()

5.RandomCrop类的使用

随机裁剪。

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

# Tensor的使用
writer = SummaryWriter("log")
img_path = "../dataset/bees/10870992_eebeeb3a12.jpg"
img = Image.open(img_path)
print(img)


tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)

writer.add_image("Tensor_img", tensor_img)

print(tensor_img[0][0][0])    # 归一化处理之前的数据
trans_norm = transforms.Normalize([1, 3, 5], [3, 2, 1])
img_norm = trans_norm(tensor_img)
# print(img_norm[0][0][0])     # 归一化处理后的结果
writer.add_image("Normalize", img_norm)


# Resize的使用:重置图片大小
print(img.size)    # (500, 464)
trans_resize = transforms.Resize((512, 512))

img_resize = trans_resize(img)
print(img_resize)   # <PIL.Image.Image image mode=RGB size=512x512 at 0x2A17E774248>


#  Compose的使用:
img_resize = tensor_trans(img_resize)
writer.add_image("Resize", img_resize, 0)
# print(img_resize)
trans_resize_2 = transforms.Resize(1024)
trans_compose = transforms.Compose([trans_resize_2, tensor_trans])
img_resize_2 = trans_compose(img)
writer.add_image("Resize", img_resize_2, 1)


# RendomCrop类的使用:随机裁剪
# trans_random = transforms.RandomCrop(512)
trans_random = transforms.RandomCrop(1000, 500)
trans_compose_2 = transforms.Compose([trans_random, tensor_trans])
for i in range(10):
    img_crop = trans_compose_2(img)
    # writer.add_image("RancomCrop", img_crop, i)
    writer.add_image("RancomCropHW", img_crop, i)

writer.close()

Pytorch中如何加载数据、Tensorboard、Transforms的使用,机器学习,pytorch,人工智能,python文章来源地址https://www.toymoban.com/news/detail-694421.html

到了这里,关于Pytorch中如何加载数据、Tensorboard、Transforms的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学习pytorch4 transforms的使用

    B站小土堆视频学习 类实例化–__call__方法调用 输出结果: tensor数据类型包含了神经网络需要用到的一些参数 https://blog.csdn.net/qq_28306361/article/details/103519982 hook的使用 回答1: 可能是因为保存的RGB通道不一样导致的

    2024年02月12日
    浏览(30)
  • TensorBoard——Pytorch版使用(附带案例演示)

    TensorBoard是一个用于可视化机器学习实验结果的工具,可以帮助我们更好地理解和调试训练过程中的模型。 在PyTorch中,我们可以使用TensorBoardX库来与TensorBoard进行交互。TensorBoardX是一个PyTorch的扩展,它允许我们将PyTorch的训练中的关键指标和摘要写入TensorBoard的事件文件中。

    2024年03月11日
    浏览(39)
  • Pytorch使用TensorBoard(使用AutoDL快速入门)(mac系统)

    AutoDL配有miniconda,提供 tensorboard 监控 没有账号的可以注册体验,新用户注册有十元免费代金券 https://www.autodl.com/register?code=c7d8238d-2b58-4765-a38a-1b9c3f39926e 终端进入项目环境,输入命令安装 终端输入: 正常输出则安装成功 导入包 创建一个SummaryWriter对象:用于创建一个log文件

    2024年02月06日
    浏览(217)
  • pytorch中使用TensorBoard进行可视化Loss及特征图

    安装TensorBoard 导入TensorBoard 实例化TensorBoard 训练过程中的loss,accuracy等都是标量,都可以用TensorBoard中的add_scalar来显示,add_scalar方法中第一个参数表示表的名字,第二个参数表示的是你要存的值,第三个参数可以理解为x轴坐标。 终端输入tensorboard --logdir=logs,开启TensorBoard

    2023年04月12日
    浏览(56)
  • 【人工智能概论】 PyTorch可视化工具Tensorboard安装与简单使用

    Tensorboard原本是Tensorflow的可视化工具,但自PyTorch1.2.0版本开始,PyTorch正式内置Tensorboard的支持,尽管如此仍需手动安装Tensorboard。否则会报错。 ModuleNotFoundError: No module named ‘tensorboard’ 进入相应虚拟环境后,输入以下指令即可安装。 输入以下指令,不报错即说明安装成功。

    2023年04月24日
    浏览(48)
  • pytorch初学笔记(四):常见的Transforms使用(ToTensor、Normalize、Resize、Compose、RandomCrop)

    目录 一、 Python中内置函数__call__详解 二. ToTensor 三、归一化Normalize 1. Normalize作用  2. 所需参数 3. 计算方法 3.1 计算公式  3.2 参数传入0.5的含义  4. 归一化应用 4.1 步骤   4.2 代码  4.3 结果可视化  4.4 进阶版代码 四、Resize 1. 作用 2.  所需参数 3. 具体使用 3.1 第一种方法 3.

    2024年02月06日
    浏览(35)
  • pytorch transforms图像增强

    在学习自己的项目发现自己有很多基础知识不牢,对于图像处理有点不太清楚,因此写下来作为自己的笔记,主要是我想自己动手写一下每一句代码到底做了什么,而不是单纯的我看了知道了它做了什么,说白了,不想停在看,而是要真正自己敲。 本文基于的是pytorch1.7.1 深

    2023年04月15日
    浏览(24)
  • Pytorch下transforms.ToTensor(),transforms.Normalize()详解,及代码实现和复原

    一、在数据处理时,我们要经常用到 transforms.ToTensor(),transforms.Normalize() 语句,将图像数据转换为tensor并标准化到[-1,1]之间。 其计算过程为: ①将image数据由(H,W,C)变为(C,H,W),并除以255进行归一化到[0,1]区间; ②将numpy.ndarray数据类型转换为Tensor ③根据image=(x-mean)/std进行

    2024年02月16日
    浏览(37)
  • [pytorch] 2. tensorboard

    TensorBoard 是一组用于数据可视化的工具。它包含在流行的开源机器学习库 Tensorflow 中.但是也可以独立安装,服务Pytorch等其他的框架 可以常常用来观察训练过程中每一阶段如何输出的 安装 启动 会默认在6006端口打开,也可以自行制定窗口,如: 所在类: 介绍: 创建对象 常用

    2024年01月22日
    浏览(31)
  • Python小知识 - 【Python】如何使用Pytorch构建机器学习模型

    【Python】如何使用Pytorch构建机器学习模型 机器学习是人工智能的一个分支,它的任务是在已有的数据集上学习,最终得到一个能够解决新问题的模型。Pytorch是一个开源的机器学习框架,它可以让我们用更少的代码构建模型,并且可以让模型训练的过程更加简单。 首先,我们

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包