访问作者github: https://github.com/NefelibataBIGR/PyTorch_Notes ,获取笔记代码
- 学习内容为小土堆b站pytorch课程
三、Tensorboard 的使用
具体代码见Python>pytorch文件中的 ==tensorboard_demo.py== 文件
- TensorBoard 是一组用于数据可视化的工具
- 也可以当做日志使用
- SummaryWriter类
- 将条目直接写入 log_dir 中的事件文件以供 TensorBoard 使用
- 实例化一个writer
- 最后记得:writer.close()
1. add_scalar( ) 的使用
- writer.add_scalar(tag , scalar_value , global_step)
- 添加一个标量数据(scalar data)到summary中,画图
- 参数:
- tag:字符串,绘图的标题
- scalar_value:保存的数值(y轴)
- global_step:int,第几步(x轴)
- 写完logs文件夹后命令行输入:tensorboard –logdir=logs –port=自己设置端口号,能看到保存的图
2. add_image( ) 的使用
- writer.add_scalar(tag , img_tensor , global_step)
- 添加一个图像数据到summary中
- 参数:
- tag:字符串,图片的标题
- img_tensor:
- 注意类型:torch.Tensor, numpy.ndarray, or string/blobname
- 要添加的图像
- global_step:int,第几步
四、transforms
具体代码见Python>pytorch文件中的 ==transforms_demo.ipynb== 文件
- torchvision.transforms
- 提供了常用的一系列图像预处理方法,例如数据的标准化,中心化,旋转,翻转等
1. transforms 的使用
- from torchvision import transforms
- 工具:
- ToTensor:将PIL或ndarray类型转换成tensor类型(张量化)
- Resize:改变输入(PIL类型)的形状成指定形状或等比缩放
- Compose:将几个transforms工具组成工作流
- Normalize:将输入(tensor类型)归一化
- RandomCrop:对输入随机裁剪
- 先实例化再用
2. 常见的 transforms
常见数据类型:
- PIL:Image.open()
- tensor:ToTensor()
- ndarray:cv.imread()
ToTensor()
- 实例化
- 将PIL或ndarray类型转换成tensor类型
Normalize()
- 实例化,输入均值和标准差的列表(每个channel都要有)
- 将输入(tensor类型)归一化
- 公式:output[channel] = (input[channel] - mean[channel]) / std[channel]
Resize()
- 实例化
- 改变输入(PIL类型)的形状成指定形状或等比缩放
- 输入一个元组就是指定形状
- 输入一个值就是等比缩放
……
关注输入输出类型!!关注参数!!多看官方文档!!
3. 与数据集结合
- torchvision官方文档很多数据集可供下载:Datasets — Torchvision 0.21 documentation
- 获取数据集:
- torchvision.datasets.数据集名字(…… , download=True)
- 具体代码见文件