深度学习-Pytorch
此为本人学习深度学习及Pytorch基础知识时所作,可能存在部分错误之处,敬请谅解。
TensorBoard
代码
1 | from torch.utils.tensorboard import SummaryWriter |
其中,对writer.add_image("test", img, 1, dataformats = "HWC")
1
为步数,dataformats为格式
Terminal
1 | tensorboard --logdir=logs |
输出内容为TensorBoard 2.10.0 at http://localhost:6006/ (Press CTRL+C to quit)
表示在端口6006训练\
可用tensorboard --logdir=logs --port=6007
指定端口
TransForms
代码
1 | from torchvision import transforms |
torchvision
官方数据集下载
1 | train_data = torchvision.datasets.CIFAR10(root = "./dataset_test", train = True, transform = dataset_transform, download = True) |
root为本地下载存放地址
train为True为下载训练集 为False为下载测试集
transform为图片转化的工具 如dataset_transform = torchvision.transforms.Compose([torchvision.transforms.ToTensor()])
download为是否下载该数据集
数据集内容 例
1 | img, target = test_set[0] |
对应输出为(<PIL.Image.Image image mode=RGB size=32x32 at 0x106B06F4E50>, 3)
(此处前部分为不经过transform进行变换的默认PIL格式照片)
前部分为图片,后部分为该图片对应的对象在classes(test_set.classes)中的下标
若为
1 | test_set.classes[target] |
则输出对应为cat
dataloader
数据加载器
1 | test_loader = DataLoader(dataset = test_data, batch_size = 4, shuffle = True, num_workers = 0, drop_last = False) |
dataset为指定数据集(测试集)
batch_size为指定每次从dataset中去除n个数据进行打包
shuffle若为True则每次训练会打乱顺序 一般为True
num_work为主进程数量
drop_last为保存最后一次取的数据
代码
1 | # 准备测试集 |
convolution functional
卷积层 代码
1 | import torch |
对于torch.reshape(input,(1, 1, 5, 5))
shape为四通道
第一位为channel通道数量
第二位为输入channel/group(batch_size)
三四位分别为高和宽
及有dilation 空洞卷积
F.conv2d
意为二维卷积
stride为卷积核移动步数,padding为填充情况
conv2d小历程
1 | import torch |
将数据集中的图片进行卷积操作,即卷积层
池化层
最大池化
1 | import torch |
其中self.maxpool1 = nn.MaxPool2d()(kernel_size = 3, ceil_mode = True)
中的ceil_mode
为补全,为True即当kernel加载到不满九个数据的位置时仍然计
池化可以缩减目标空间 增加运行速度
非线性激活
1 | import torch |
线性层
1 | from modulefinder import Module |
也作为全连接层?
Sequential及网络搭建小历程
1 | import torch |
损失函数
1 | inputs = torch.tensor([1, 2, 3], dtype = torch.float32) |
- Title: 深度学习-Pytorch
- Author: CGC
- Created at: 2023-03-14 21:29:53
- Updated at: 2023-07-09 20:06:24
- Link: https://redefine.ohevan.com/2023/03/14/深度学习-Pytorch/
- License: This work is licensed under CC BY-NC-SA 4.0.