006pyTorch入门——卷积层
内容目录

合集请看:pyTorch入门合集

参考视频:https://www.bilibili.com/video/BV1hE411t7RN/?spm_id_from=333.337.search-card.all.click
官方文档Conv2d — PyTorch 2.1 documentation

核心代码

和[[005pyTorch入门——nn.Module]]结合着看,非常明显

class Module(nn.Module):  
    def __init__(self):  
        super().__init__()  
        # 我的理解是:设置卷积规则,之后forward直接套用这套规则。该规则的名字被定义为conv1  
        self.conv1 = Conv2d(3, 6, 3, stride=1, padding=0)  

    def forward(self, x):  
        # 调用名字为conv1的卷积规则  
        x = self.conv1(x)  
        return x

完整代码

import torch  
import torchvision  
from torch import nn  
from torch.nn import Conv2d  
from torch.utils.data import DataLoader  
from torch.utils.tensorboard import SummaryWriter  

# 获取数据集,这里dataloader没搞懂,暂且放着吧qwq  
dataset = torchvision.datasets.CIFAR10("../data",train=False, transform=torchvision.transforms.ToTensor(),  
                                       download=True)  
dataloader = DataLoader(dataset, batch_size=64)  

class Module(nn.Module):  
    def __init__(self):  
        super().__init__()  
        # 我的理解是:设置卷积规则,之后forward直接套用这套规则。该规则的名字被定义为conv1  
        self.conv1 = Conv2d(3, 6, 3, stride=1, padding=0)  

    def forward(self, x):  
        # 调用名字为conv1的卷积规则  
        x = self.conv1(x)  
        return x  

module = Module()  

writer = SummaryWriter("../logs")  

step = 0  
for data in dataloader:  
    imgs, targets = data  
    output = module(imgs)  
    print(output.shape)  
    # 输入的shape参数torch.Size([64, 3, 30, 30])  
    writer.add_images("input", imgs, step)  
    # 输出的shape参数torch.Size([64, 6, 30, 30])  
    output = torch.reshape(output,(-1, 3, 30, 30))  
    writer.add_images("output", output, step)  

    step = step + 1

在终端输入tensorboard --logdir=logs看最终结果

image.png|250

上一篇
下一篇