一、常用的神经网络层
1。图像相关层
图像相关层主要包括卷积层(Conv)、池化层(Pool)、等。这些层在实际应用中可以分为一维(1D)、二维(2D)和三维(3D),池化又分为平均池化(SvgPool)、
最大值池化(MaxPool)、自适应池化(AdaptiveAvgPool)等。卷积层除了常用的前向卷积外,还有逆卷积(TransposeConv).
1)卷积层
import torch as t
from torch import nn
from torch.autograd import Variable as V
from PIL import Image
from torchvision.transforms import ToTensor, ToPILImage
to_tensor=ToTensor()
to_pil=ToPILImage()
lena=Image.open('C:/Users/Duan/Pictures/lena.jpg')
print(type(lena))
print(lena.size)
input=to_tensor(lena).unsqueeze(0)
kernel=t.ones(3,3)/-9
kernel[1][1]=1
conv=nn.Conv2d(1,1,(3,3),1,bias=False)
conv.weight.data=kernel.view(1,1,3,3)
out=conv(V(input))
to_pil(out.data.squeeze(0))
lena图
程序输出:
处理后的lena图
2)池化层
池化可以看做一种特殊的卷积层,用来下采样。但池化没有可学习的参数,其weight是固定的。
import torch as t
from torch import nn
from torch.autograd import Variable as V
from PIL import Image
from torchvision.transforms import ToTensor, ToPILImage
to_tensor=ToTensor()
to_pil=ToPILImage()
lena=Image.open('C:/Users/Duan/Pictures/1.jpg')
input=to_tensor(lena).unsqueeze(