0%

深度学习——nn.conv2d的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

import torchvision
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
# 采集源数据
dataset = torchvision.datasets.CIFAR10("test-conv2d", train=False, transform=torchvision.transforms.ToTensor(),
download=True)
dataloader = DataLoader(dataset, batch_size=64)

# 定义自己的卷积操作
class Mynn(nn.Module):
def __init__(self):
super(Mynn, self).__init__()
self.conv1 = Conv2d(in_channels=3, out_channels=1, kernel_size=2, stride=1, padding=0)
# 卷积操作
def forward(self, x):
x = self.conv1(x)
return x

# 声明类和变量
mynn = Mynn()
writer = SummaryWriter("log-conv2d")
step = 0

# 查看卷积操作对数据产生的变化
for data in dataloader:
imgs, tags = data
output = mynn(imgs)
# 查看原始数据格式
print(imgs.shape)
# 查看格式是否发生变化
print(output.shape)
# 用tensorboard查看具体图片是否变成了灰度图片
writer.add_images("input", imgs, step)
writer.add_images("outpuut", output, step)
# 多次写入
step = step+1
# 关闭写入
writer.close()