PyTorch深度学习入门笔记P7-14
@ZZHow(ZZHow1024)
参考课程:
【PyTorch深度学习快速入门教程【小土堆】】
[https://www.bilibili.com/video/BV1hE411t7RN]
P7. TensorBoard的使用(一)
TensorBoard 的安装与导入
pip install -i tensorboardfromtorch.utils.tensorboardimportSummaryWriteradd_scalar() 的使用
writer=SummaryWriter('logs')# y = xforiinrange(100):writer.add_scalar("y = x",i,i)writer.close()TensorBoard 的启动
tensorboard --logdir=logs --port=6006案例演示:p7_tensorboard_1.py
P8. TensorBoard的使用(二)
add_image() 的使用(常用来观察训练结果)
writer=SummaryWriter('logs')image_path='xxx'image_pil=Image.open(image_path)image_array=np.array(image_pil)writer.add_image('image',image_array,1,dataformats='HWC')writer.close()案例演示:p8_tensorboard_2.py
P9. Transforms的使用(一)
transforms 该如何使用
tensor_transform=transforms.ToTensor()tensor_image=tensor_transform(image)案例演示:p9_transforms_1.py
P10. Transforms的使用(二)
- 为什么需要 Tensor 数据类型
- Tensor(张量)是PyTorch、TensorFlow等深度学习框架中的核心数据结构,本质上是多维数组(类似于NumPy的
ndarray),但具备更强大的功能,专为高效计算和硬件加速设计。 - Tensor 是深度学习的基石,它统一了多维数据的表示、支持硬件加速和自动微分,是构建高效、灵活神经网络的必备工具。
- Tensor(张量)是PyTorch、TensorFlow等深度学习框架中的核心数据结构,本质上是多维数组(类似于NumPy的
- 案例演示:p10_transforms_2.py
P11. 常见的Transforms(一)
ToTensor 的使用
transforms_tensor=transforms.ToTensor()image_tensor=transforms_tensor(image)Normalize 的使用
transforms_normalize=transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])image_norm=transforms_normalize(image_tensor)案例演示:p11_transforms_use_1.py
P12. 常见的Transforms(二)
Resize 的使用
transforms_resize=transforms.Resize((512,512))image_resize=transforms_resize(image)image_resize=transforms_tensor(image_resize)Compose 的使用
transforms_resize_2=transforms.Resize(512)transforms_compose=transforms.Compose([transforms_resize_2,transforms_tensor])image_resize_2=transforms_compose(image)RandomCrop 的使用
transforms_random=transforms.RandomCrop(256)transforms_compose_2=transforms.Compose([transforms_random,transforms_tensor])foriinrange(10):image_crop=transforms_compose_2(image)writer.add_image('RandomCrop',image_crop,i)总结
- 关注输入和输出类型
- 多看官方文档
- 关注方法需要什么参数
不知道返回值的时候
printprint(type())- debug
案例演示:p12_transforms_use_2.py
P13. torchvision中的数据集使用
官方数据集
Datasets — Torchvision 0.22 documentation
使用
# 训练数据集train_set=torchvision.datasets.CIFAR10(root='./dataset',train=True,transform=torchvision.transforms.ToTensor(),download=True)# 测试数据集test_set=torchvision.datasets.CIFAR10(root='./dataset',train=False,transform=torchvision.transforms.ToTensor(),download=True)数据集的常用参数
root(必需参数):指定数据集存储的根目录路径。train(默认值:True):指定加载训练集还是测试集。transform(默认值:None):定义对图像数据的预处理操作(如缩放、归一化、数据增强)。target_transform(默认值:None):定义对标签(target)的预处理操作(如标签映射、编码转换)。download(默认值:False):是否自动下载数据集到root目录。
案例演示:p13_datasets.py
P14. DataLoader的使用
使用
test_data=torchvision.datasets.CIFAR10('./dataset',train=False,transform=torchvision.transforms.ToTensor(),download=True)test_loader=DataLoader(dataset=test_data,batch_size=64,shuffle=True,num_workers=0,drop_last=False)DataLoader 的常用参数
dataset(必需参数):指定要加载的数据集对象,必须是继承自torch.utils.data.Dataset的实例。batch_size(默认值:1):每个批次(batch)加载的样本数量。shuffle(默认值:False):是否在每个 epoch 开始时打乱数据顺序。num_workers(默认值:0):用于数据加载的子进程数量。drop_last(默认值:False):是否丢弃最后一个不完整的批次(当样本总数不能被batch_size整除时)。pin_memory(默认值:False):是否将数据加载到 CUDA 的固定内存(pinned memory)中。timeout(默认值:0):设置从子进程获取数据的超时时间(秒)。sampler和batch_sampler:自定义数据采样策略(替代默认的随机打乱或顺序采样)。collate_fn(默认值:None):自定义如何将多个样本合并成一个批次(batch)。
案例演示:p14_dataloader.py