2022李宏毅机器学习深度学习学习笔记第十三周--tensorboard的使用与Transforms的使用

文章目录

  • 摘要
  • 一、学习tensorboard的使用
  • 二、Transforms的使用


摘要

本节主要学习TensorBoard的安装;add_scalar()的使用以及add_image()的使用;学习tensorboard与Transforms如何使用。

一、学习tensorboard的使用

SummaryWriter类是一个直接向log_dir文件夹写入的事件文件,这个事件文件可以被TensorBoard进行解析。

如何使用方法?

def __init__(self, log_dir=None, comment='', purge_step=None, max_queue=10,
                 flush_secs=120, filename_suffix=''):

可以看到这个初始化函数,需要输入文件夹的名称。
add_scalar方法的使用:
def add_scalar(
self,
tag,
scalar_value,
global_step=None,
walltime=None,
new_style=False,
double_precision=False,
)
需要的参数:
tag (string): 类似于图表的标题。
scalar_value (float or string/blobname): 保存的数值,对应y轴
global_step (int): 多少步,对应x轴 walltime (float): Optional override default walltime (time.time())
with seconds after epoch of event
new_style (boolean): Whether to use new style (tensor field) or old
style (simple_value field). New style could lead to faster data loading.
2022李宏毅机器学习深度学习学习笔记第十三周--tensorboard的使用与Transforms的使用_第1张图片

from torch.utils.tensorboard import SummaryWriter
#导入tensorboard,导入SummaryWriter类

writer = SummaryWriter("logs")
#将需要的事件文件存储到logs底下。
# writer.add_image()
#y=x
for i in range(100):
    writer.add_scalar("y=x", i, i)
writer.close()

运行可以看到多了一个logs文件。
在这里插入图片描述
如何打开事件文件?
使用anaconda命令行打开,使用指令tensorboard,logdir=事件文件所在的文件夹名;输入tensorboard --logdir=E:\学习笔记\learn_pytorch\logs,写logs的绝对路径,显示tensorboard打开的地址,绘制的图像如下图所示。
2022李宏毅机器学习深度学习学习笔记第十三周--tensorboard的使用与Transforms的使用_第2张图片

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

2022李宏毅机器学习深度学习学习笔记第十三周--tensorboard的使用与Transforms的使用_第3张图片
def add_image(self, tag, img_tensor, global_step=None, walltime=None, dataformats=‘CHW’)
tag:图像标题
img_tensor:在图像显示时要注意图像的数据类型,数据类型可以是torch.Tensor, numpy.array, or string/blobname。

python控制台:
输入image_path="data/train/ants_image/0013035.jpg"图片的相对地址
img = Image.open(image_path)读取图片,图片的类型为不满足要求,所以利用Opencv读取图片,获取numpy型图片数据。利用numpy.array(),对PIL图片进行转换。
导入numpy,import numpy as np
img_array = np.array(img),将PIL的类型转换成numpy类型。
在这里插入图片描述
通过print(img_array.shape)输出格式为(512, 768, 3),即(H,W,C)(高度,宽度,通道);从PIL到numpy,需要在add_image()中指定shape中每一个数字/维表示的含义。
可以看到打开图片,标题test,第一步step 1。
2022李宏毅机器学习深度学习学习笔记第十三周--tensorboard的使用与Transforms的使用_第4张图片
修改参数,writer.add_image("test", img_array, 2, dataformats='HWC'),图片地址为蜜蜂的地址。可以看到显示蜜蜂的图片,拖动滑块可以来回切换。

二、Transforms的使用

学习torchvision中的transforms,transforms主要是对图片进行变换。
ToTensor把一个`PIL Image或者numpy.ndarray``转化成一个tensor。
ToPILImage把一个图片转化成PIL图片。
transforms结构及用法:
把一个特定格式的图片经过ToTensor、resize等工具输出想要的图片变换。先创建具体的工具,比如tensor_trans = transforms.ToTensor(),使用工具,给它一个输入,得到结果。
Tensor数据类型包装了反向神经网络所需要的一些参数。

from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transforms
# python 的用法 ----tensor数据类型
#通过transforms.ToTensor 去看两个问题
#1.transforms该如何使用
#2.Tensor数据类型和普通数据类型有什么区别,为什么需要tensor数据类型

img_path = "data/train/ants_image/0013035.jpg"
img = Image.open(img_path)
# print(img)
tensor_trans = transforms.ToTensor()
tensor_img = tensor_trans(img)
writer = SummaryWriter("logs")
writer.add_image("Tensor_img", tensor_img)
writer.close()

你可能感兴趣的:(深度学习,机器学习,学习)