文章目录
前言
使用 B站小土堆课程的笔记
一、定义概念 + 缩写
- 卷积层是神经网络中用于突出特征来进行分类任务的层。
二、性质
- 卷积核例子:vgg16 model
三、代码
- 添加库
py
python代码块import os
import torch
import torchvision # torchvision 通常用于计算机视觉任务
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
- 下载/加载数据集,加载数据
py
# 这是一个类,用于下载和加载 CIFAR-10 数据集。CIFAR-10 是一个常用的小型图像数据集,用于训练机器学习和计算机视觉算法。它包含10个类别,每个类别有6000张32x32的彩色图像,总共有60000张图像。
# transform=torchvision.transforms.ToTensor() 转换格式
dataset = torchvision.datasets.CIFAR10("../data", train=False, transform=torchvision.transforms.ToTensor(),
download=True)
# load data
dataloader = DataLoader(dataset, batch_size=64)
- 定义类,搭建简单神经网络
py
# 搭建简单 NN
class Tudui(nn.Module):
def __init__(self):
# 继承
super(Tudui, self).__init__()
# init
self.conv1 = Conv2d(in_channels=3, out_channels=6, kernel_size=3, stride=1, padding=0)
# 卷积层
def forward(self, x):
x = self.conv1(x) # conv
return x
# create an example
tudui = Tudui()
- 加载到 tensorboard
py
# log writer, write to tensorboard
writer = SummaryWriter("../logs")
- 进行卷积
py
# init counter
step = 0
# 循环进行卷积操作
for data in dataloader:
imgs, targets = data
output = tudui(imgs) # def a output
print(imgs.shape)
print(output.shape)
# torch.Size([64, 3, 32, 32])
# add img to tensorboard
writer.add_images("input", imgs, step)
# torch.Size([64, 6, 30, 30]) -> [xxx, 3, 30, 30]
output = torch.reshape(output, (-1, 3, 30, 30))
writer.add_images("output", output, step)
# counter
step = step + 1
- 直接在 py 中加载 tensorboard,端口=6006;关闭 writer
py
# open tensorboard
os.system('tensorboard --logdir=logs --port=6006')
# tensorboard --logdir="D:\Libraries\projects\python\001 learningTest and small task\a005_pytorch\a002_lesson_src\logs" --port=6006
writer.close()
总结
参考文献
[1]