跟着小土堆学习pytorch(二)——TensorBoard和Transform

文章目录

  • 一、TensorBoard
    • [1.1 add_scalar()](#1.1 add_scalar())
      • [1.1,1 报错:TypeError: MessageToJson() got an unexpected keyword argument 'including_default_value_fields'](#1.1,1 报错:TypeError: MessageToJson() got an unexpected keyword argument 'including_default_value_fields')
      • [1.1.2 图像重叠](#1.1.2 图像重叠)
      • [1.1.3 代码展示](#1.1.3 代码展示)
    • [1.2 add_image()](#1.2 add_image())
      • [1.2.1 代码](#1.2.1 代码)
  • 二、transform
    • [2.1 介绍------对图片进行一些变化](#2.1 介绍——对图片进行一些变化)
    • [2.2 补:查看py文件下(如,transform.py)下的结构](#2.2 补:查看py文件下(如,transform.py)下的结构)
    • [2.3 查找快捷键](#2.3 查找快捷键)
    • [2.4 常用的类](#2.4 常用的类)
    • [2.5 tensor](#2.5 tensor)
    • [2.6 call()](#2.6 call())
    • [2.7 cv2库](#2.7 cv2库)
    • [2.8 代码与效果](#2.8 代码与效果)

一、TensorBoard

主要是用来绘制train/val loss图像(图像现实)

比如,在训练过程的时候看看loss的图像情况,loss就是描述实验数据和真实数据的差距

1.1 add_scalar()

1.1,1 报错:TypeError: MessageToJson() got an unexpected keyword argument 'including_default_value_fields'

这个是由于,tensorboard的版本过高了
pip install tensorboard==2.12.0弄个低版本就行

嗯,数据就生成了

1.1.2 图像重叠

如果重叠了,就是同一个标签下面,会造成图像混合在一起,进行拟合,很乱,需要删除logs下的event事件

1.1.3 代码展示

python 复制代码
from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter("D:\\pycharm_project\\try3\\math\\logs")

# writer.add_image()

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

writer.close()

1.2 add_image()

对于img_tensor这个参数,图片格式必须torch.Tensor, numpy.ndarray, or string/blobname

能看清每一步的数据

1.2.1 代码

python 复制代码
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np

writer = SummaryWriter("D:\\pycharm_project\\try3\\math\\logs")
img_path = "D:\\pycharm_project\\try3\\dataset\\train\\bees\\21399619_3e61e5bb6f.jpg"
img_PIL = Image.open(img_path)
img_array = np.array(img_PIL)

print(type(img_array))
print(img_array.shape)

writer.add_image("train",img_array,2,dataformats='HWC')

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

writer.close()

二、transform

2.1 介绍------对图片进行一些变化

对图片进行一些变化

在torchvision库中,"transform"指的是一系列用于图像预处理和数据增强的操作。这些操作可以改变图像的大小、颜色、对比度等属性,或者对图像进行裁剪、旋转等。

Resize:调整图像的大小。它可以接受一个整数或者一个尺寸序列(高度,宽度)。如果提供整数,图像的较小边将被调整为此数值,同时保持原始宽高比。

CenterCrop:将图像裁剪为给定的尺寸,裁剪操作在图像的中心进行。

RandomCrop:随机裁剪图像的一部分。可以指定裁剪区域的尺寸,以及是否在必要时对图像进行填充。

RandomHorizontalFlip和RandomVerticalFlip:随机水平或垂直翻转图像。这些变换以一定的概率(默认为0.5)应用。

ColorJitter:随机改变图像的亮度、对比度、饱和度和色调。

Grayscale:以一定的概率将图像转换为灰度图像。

RandomRotation:随机旋转图像一个角度,角度范围可以指定。

Normalize:对图像进行标准化处理,即减去均值并除以标准差。这通常在数据预处理的最后阶段进行,以确保模型输入的一致性。

ToTensor:将PIL图像或numpy数组转换为torch.Tensor对象。转换后的张量形状为(C, H, W),其中C是通道数,H是高度,W是宽度。

Compose:将多个变换组合成一个。这是最常用的变换之一,因为它允许你将一系列的预处理步骤串联起来,一次性应用到图像上。

2.2 补:查看py文件下(如,transform.py)下的结构

,这些库,里面的类,很多,想要查看可以组合键Alt+7

下拉之后,双击,可以定位到目标函数

2.3 查找快捷键

setting--->keymap--->structure

2.4 常用的类

compose---几种变换进行组合一起
totensor---变成tensor格式
ToPILImage---变成PILimage格式
Normalize---正则化
CenterCrop---中心裁剪
resize---裁剪/变换

2.5 tensor

  1. transform怎么用
  2. tensor的数据类型

totensor的__call__()

输入图片,返回tensor

python 复制代码
tensor_trans = transforms.ToTensor() # 实例化
tensor_img = tensor_trans(img)       # 调用

tensor数据类型,包装了神经网络所需要的一些理论参数

2.6 call()

call方法可以使对象具有当作函数的功能,当你调用对象,就会自动调用call方法

2.7 cv2库

使用cv2.imread,返回出来的就是ndarry,也能通过totensor转成tensor

Alt+Enter---> 自动导入库

ctrl + p ---> 现实需要输入的参数

2.8 代码与效果

python 复制代码
from PIL import Image
from torch.utils.tensorboard import SummaryWriter

from torchvision import transforms


img_path = "D:\\pycharm_project\\try3\\dataset\\train\\ants\\0013035.jpg"
img = Image.open(img_path)
writer_try = SummaryWriter("D:\\pycharm_project\\try3\\math\\logs")


tensor_trans = transforms.ToTensor() # 实例化
tensor_img = tensor_trans(img)       # 调用

print(tensor_img)

writer_try.add_image("Tensor_img", tensor_img)
writer_try.close()

tensorboard --logdir=D:\pycharm_project\try3\math\logs以后logs文件,我都用绝对地址,不然总是出问题

相关推荐
回眸&啤酒鸭8 分钟前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
博图光电17 分钟前
Libra 27105相关技术参数
人工智能·数码相机
Titan202426 分钟前
MySQL访问个人学习笔记
笔记·学习·mysql
IT_陈寒42 分钟前
SpringBoot自动配置差点让我加班到凌晨
前端·人工智能·后端
yumgpkpm1 小时前
Acceldata ODP(Open Data Platform)3.3.6.4(RHEL9)保姆级完整安装手册
大数据·人工智能·hive·hadoop·kafka·hbase·cloudera
程序员cxuan1 小时前
腾讯又来一王炸,开源版 WorkBuddy 太夯了!
人工智能·后端·程序员
邓工说电1 小时前
智慧断路器安全吗?数据加密、离线保护与合规认证全解读
大数据·数据库·人工智能·智能断路器·炜晔科技
阿里云大数据AI技术1 小时前
Lance 数据检索怎么选,当然阿里云 Milvus 向量湖
人工智能
出海客1 小时前
跨境电商多语言客服知识库怎么建:资料结构、检索边界与人工升级
大数据·人工智能
xsd202411181 小时前
从自主导航到视觉读表:一台工业巡检机器人的全栈技术链路拆解
人工智能