怎么做学校网站和微信公众号,如何给自己的公司建网站,现在app用什么开发,做网站外包公司名称文章目录 训练LeNet模型下载FashionMNIST数据训练保存模型 卷积神经网络可视化加载模型一个测试图像不同层对图像处理的可视化第一个卷积层的处理第二个卷积层的处理 卷积神经网络是利用图像空间结构的一种深度学习网络架构#xff0c;图像在经过卷积层、激活层、池化层、全连… 文章目录 训练LeNet模型下载FashionMNIST数据训练保存模型 卷积神经网络可视化加载模型一个测试图像不同层对图像处理的可视化第一个卷积层的处理第二个卷积层的处理 卷积神经网络是利用图像空间结构的一种深度学习网络架构图像在经过卷积层、激活层、池化层、全连接层等处理后得到输出。 本次想探索一下图像经过每一层都发生了什么变化比如不同的卷积核(滤波器)都提取了图像的什么特征越深层是否会对图像更抽象化
带着这些问题本文将使用FashionMNIST数据、简单的LeNet模型来探索CNN是如何处理图像的。
训练LeNet模型
首先来训练一个LeNet模型(换成其他卷积神经网络也可以)目的是为了利用训练好的模型参数获得输入图像的各层输出以供可视化之用。
下载FashionMNIST数据 root设置下载路径 train为True表示下载训练集反之为测试集 download首次下载设为True下载好后可以改为False。 from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity allfrom matplotlib import pyplot as plt
%matplotlib inline
from PIL import Imageimport torch
from torch import nn
import torchvision
from torch.utils import data
from torchvision import transforms#下载数据
def load_fashion_mnist(batch_size):trans transforms.Compose([transforms.ToTensor()])train torchvision.datasets.FashionMNIST(root../data, trainTrue, transformtrans, downloadFalse)test torchvision.datasets.FashionMNIST(root../data, trainFalse,transformtrans,downloadFalse)return (data.DataLoader(train, batch_size, shuffleTrue), data.DataLoader(test, batch_size, shuffleFalse))训练
简单地训练网络
#批量大小
batch_size 512
train_iter, test_iter load_fashion_mnist(batch_sizebatch_size)#LeNet网络
net nn.Sequential(nn.Conv2d(1, 6, kernel_size5, padding2), nn.ReLU(),nn.AvgPool2d(kernel_size2, stride2),nn.Conv2d(6, 16, kernel_size5), nn.ReLU(),nn.AvgPool2d(kernel_size2, stride2),nn.Flatten(),nn.Linear(16 * 5 * 5, 120), nn.ReLU(),nn.Linear(120, 84), nn.ReLU(),nn.Linear(84, 10))#参数初始化
def init_network(model, methodxavier):for name, w in model.named_parameters():if weight in name:if method xavier:nn.init.xavier_normal_(w)elif method kaiming:nn.init.kaiming_normal_(w)else:nn.init.normal_(w)elif bias in name:nn.init.constant_(w, 0)else:pass
init_network(net)#损失函数
lossnn.CrossEntropyLoss()#优化算法
lr0.05
updatertorch.optim.SGD(net.parameters(),lrlr)#训练
def train(net, train_iter, test_iter, loss, num_epochs, updater,device):net.to(device)for epoch in range(num_epochs):if isinstance(net, torch.nn.Module):net.train()for X, y in train_iter:X,yX.to(device),y.to(device) y_hat net(X) l loss(y_hat, y)updater.zero_grad() l.backward() updater.step()device torch.device(mps if torch.backends.mps.is_available else cpu) #Mac使用mps
num_epochs 20
train(net, train_iter, test_iter, loss, num_epochs, updater,device)保存模型
#保存模型参数
torch.save(net.state_dict(),LeNet.params)卷积神经网络可视化
本节将使用上文训练好的模型来可视化卷积神经网络不同层对图像的处理过程。
加载模型
#LeNet网络结构
net nn.Sequential(nn.Conv2d(1, 6, kernel_size5, padding2), nn.ReLU(),nn.AvgPool2d(kernel_size2, stride2),nn.Conv2d(6, 16, kernel_size5), nn.ReLU(),nn.AvgPool2d(kernel_size2, stride2),nn.Flatten(),nn.Linear(16 * 5 * 5, 120), nn.ReLU(),nn.Linear(120, 84), nn.ReLU(),nn.Linear(84, 10))#加载模型参数
net.load_state_dict(torch.load(LeNet.params))
net.eval()一个测试图像
#批量大小
batch_size 1
train_iter, test_iter load_fashion_mnist(batch_sizebatch_size)#随机选择一个图像
for x,y in train_iter:_plt.imshow(x.squeeze(0).permute(1,2,0).numpy())break看上去我们抽到了一件T恤。 不同层对图像处理的可视化
#计算到给定层的输出
def cnn_net(X,net,l1):for i,layer in enumerate(net[0:l]):Xlayer(X) if il-1:print(第%s层%-10s 输出形状%s%(i1, layer.__class__.__name__, X.shape)) return X#可视化
def cnn_visual(imgs,nrows,ncols,scale):figsize (ncols * scale, nrows * scale)fig,axes plt.subplots(nrowsnrows, ncolsncols,figsizefigsize)axes axes.flatten()for i, (ax, img) in enumerate(zip(axes, imgs.squeeze(0))): _ ax.imshow(img.detach().numpy())ax.axes.get_xaxis().set_visible(False)ax.axes.get_yaxis().set_visible(False)return axesfor l in [1,2,3,4,5,6]:imgscnn_net(x.clone(),net,ll)nrows2ncolsint(imgs.shape[1]/nrows)axescnn_visual(imgs,nrows,ncols,2)第一个卷积层的处理 我们先来看看第一个卷积层中不同卷积核分别从图像中提取了什么信息第一个卷积层有6个输出通道因此查看每个通道输出的图像。
从下图可以看出第一个卷积层提取到了不同轮廓层次信息。 经过ReLU处理后 再经平均池化处理后变化不大 第二个卷积层的处理
第二个卷积层有16个输出通道随着层次加深感受野扩大通道的融合后从下图看已经比较抽象了但隐隐约约还能看出点端倪 再经ReLU和池化处理后基本上已经面目全非 以上就是对卷积神经网络可视化的初步探索感兴趣的读者可以在不同卷积神经网络和图像上多做尝试。 另附一个卷积神经网络可视化网站 文章转载自: http://www.morning.zpxwg.cn.gov.cn.zpxwg.cn http://www.morning.lwdzt.cn.gov.cn.lwdzt.cn http://www.morning.zhiheliuxue.com.gov.cn.zhiheliuxue.com http://www.morning.rmqlf.cn.gov.cn.rmqlf.cn http://www.morning.lmzpk.cn.gov.cn.lmzpk.cn http://www.morning.nqypf.cn.gov.cn.nqypf.cn http://www.morning.jcfg.cn.gov.cn.jcfg.cn http://www.morning.dxrbp.cn.gov.cn.dxrbp.cn http://www.morning.qwwcf.cn.gov.cn.qwwcf.cn http://www.morning.mmqng.cn.gov.cn.mmqng.cn http://www.morning.yhpq.cn.gov.cn.yhpq.cn http://www.morning.jlschmy.com.gov.cn.jlschmy.com http://www.morning.rqxhp.cn.gov.cn.rqxhp.cn http://www.morning.hhkzl.cn.gov.cn.hhkzl.cn http://www.morning.kpbn.cn.gov.cn.kpbn.cn http://www.morning.rkqqf.cn.gov.cn.rkqqf.cn http://www.morning.hqbnx.cn.gov.cn.hqbnx.cn http://www.morning.kpcky.cn.gov.cn.kpcky.cn http://www.morning.nnhrp.cn.gov.cn.nnhrp.cn http://www.morning.ykmkz.cn.gov.cn.ykmkz.cn http://www.morning.cwknc.cn.gov.cn.cwknc.cn http://www.morning.gnbfj.cn.gov.cn.gnbfj.cn http://www.morning.nrydm.cn.gov.cn.nrydm.cn http://www.morning.pjxlg.cn.gov.cn.pjxlg.cn http://www.morning.qcymf.cn.gov.cn.qcymf.cn http://www.morning.wsyq.cn.gov.cn.wsyq.cn http://www.morning.qnxzx.cn.gov.cn.qnxzx.cn http://www.morning.spkw.cn.gov.cn.spkw.cn http://www.morning.yqsq.cn.gov.cn.yqsq.cn http://www.morning.lkbkd.cn.gov.cn.lkbkd.cn http://www.morning.sqqdy.cn.gov.cn.sqqdy.cn http://www.morning.pmjhm.cn.gov.cn.pmjhm.cn http://www.morning.lmbm.cn.gov.cn.lmbm.cn http://www.morning.rdlong.com.gov.cn.rdlong.com http://www.morning.srmdr.cn.gov.cn.srmdr.cn http://www.morning.pypbz.cn.gov.cn.pypbz.cn http://www.morning.xmrmk.cn.gov.cn.xmrmk.cn http://www.morning.syynx.cn.gov.cn.syynx.cn http://www.morning.sskns.cn.gov.cn.sskns.cn http://www.morning.jcxzq.cn.gov.cn.jcxzq.cn http://www.morning.klcdt.cn.gov.cn.klcdt.cn http://www.morning.nfpgc.cn.gov.cn.nfpgc.cn http://www.morning.fbmrz.cn.gov.cn.fbmrz.cn http://www.morning.fpxyy.cn.gov.cn.fpxyy.cn http://www.morning.muzishu.com.gov.cn.muzishu.com http://www.morning.thbnt.cn.gov.cn.thbnt.cn http://www.morning.qqhersx.com.gov.cn.qqhersx.com http://www.morning.hhqjf.cn.gov.cn.hhqjf.cn http://www.morning.lrjtx.cn.gov.cn.lrjtx.cn http://www.morning.pcjw.cn.gov.cn.pcjw.cn http://www.morning.dygqq.cn.gov.cn.dygqq.cn http://www.morning.tldhq.cn.gov.cn.tldhq.cn http://www.morning.rghkg.cn.gov.cn.rghkg.cn http://www.morning.sjpht.cn.gov.cn.sjpht.cn http://www.morning.mzzqs.cn.gov.cn.mzzqs.cn http://www.morning.wkhfg.cn.gov.cn.wkhfg.cn http://www.morning.bchfp.cn.gov.cn.bchfp.cn http://www.morning.smxrx.cn.gov.cn.smxrx.cn http://www.morning.jyzxt.cn.gov.cn.jyzxt.cn http://www.morning.dnmzl.cn.gov.cn.dnmzl.cn http://www.morning.jftl.cn.gov.cn.jftl.cn http://www.morning.youngbase.cn.gov.cn.youngbase.cn http://www.morning.sqnxk.cn.gov.cn.sqnxk.cn http://www.morning.rwmqp.cn.gov.cn.rwmqp.cn http://www.morning.cwyfs.cn.gov.cn.cwyfs.cn http://www.morning.pfcrq.cn.gov.cn.pfcrq.cn http://www.morning.wqbrg.cn.gov.cn.wqbrg.cn http://www.morning.rldph.cn.gov.cn.rldph.cn http://www.morning.rblqk.cn.gov.cn.rblqk.cn http://www.morning.trsmb.cn.gov.cn.trsmb.cn http://www.morning.cbpmq.cn.gov.cn.cbpmq.cn http://www.morning.tgyzk.cn.gov.cn.tgyzk.cn http://www.morning.bqfpm.cn.gov.cn.bqfpm.cn http://www.morning.wttzp.cn.gov.cn.wttzp.cn http://www.morning.ygztf.cn.gov.cn.ygztf.cn http://www.morning.dpflt.cn.gov.cn.dpflt.cn http://www.morning.nfks.cn.gov.cn.nfks.cn http://www.morning.ptxwg.cn.gov.cn.ptxwg.cn http://www.morning.krklj.cn.gov.cn.krklj.cn http://www.morning.rbhqz.cn.gov.cn.rbhqz.cn