一般常改的就是前五个参数,后边都是默认的
单单看参数有些模糊,可从相关网页看示范
https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md
定义神经网络层
import torch
import torchvision
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import DataLoader
dataset = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor(),
download=True)
dataloader = DataLoader(dataset, batch_size=64)
class Tudui(nn.Module):
def __init__(self):
super(Tudui, self).__init__()
self.conv1 = Conv2d(in_channels=3, out_channels=6, kernel_size=3,stride=1, padding=0)
def forward(self, x):
self.conv1(x)
return x
tudui = Tudui()
print(tudui)
D:\anaconda\python.exe C:/Users/ASUS/Desktop/tudui/conv_2d.py
Files already downloaded and verified
Tudui(
(conv1): Conv2d(3, 6, kernel_size=(3, 3), stride=(1, 1))
)
Process finished with exit code 0
将数据传入
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
dataset = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor(),
download=True)
dataloader = DataLoader(dataset, batch_size=64)
class Tudui(nn.Module):
def __init__(self):
super(Tudui, self).__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)
return x
tudui = Tudui()
print(tudui)
writer = SummaryWriter("./p18")
step = 0
for data in dataloader:
imgs, targets = data
output = tudui(imgs)
print(imgs.shape)
print(output.shape)
# torch.Size([64, 3, 32, 32])
writer.add_images("input", imgs, step)
# torch.Size([64, 6, 30, 30]),不符合add_images所要求的格式,可使用不太正规的方法进行转变->[xxx, 3, 30, 30]
output = torch.reshape(output, ([-1, 3, 30, 30])) # -1 自动进行计算
writer.add_images("output", output, step)
step += 1
writer.close()
对于输出图片大小,pytorch官网中的文档给的很详细