内容目录
合集请看: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看最终结果