文章目录
- 一、TensorBoard
- 1.1 add_scalar()
- 1.1,1 报错:TypeError: MessageToJson() got an unexpected keyword argument 'including_default_value_fields'
- 1.1.2 图像重叠
- 1.1.3 代码展示
- 1.2 add_image()
- 1.2.1 代码
- 二、transform
- 2.1 介绍——对图片进行一些变化
- 2.2 补:查看py文件下(如,transform.py)下的结构
- 2.3 查找快捷键
- 2.4 常用的类
- 2.5 tensor
- 2.6 __call__()
- 2.7 cv2库
- 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 代码展示
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 代码
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
- transform怎么用
- tensor的数据类型
totensor的__call__()
输入图片,返回tensor
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 代码与效果
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文件,我都用绝对地址,不然总是出问题