当前位置: 首页 > news >正文

做室内3d设计的网站合肥seo网站排名优化公司

做室内3d设计的网站,合肥seo网站排名优化公司,网站建设计划书模板,广州天河区网站建设文章目录 训练LeNet模型下载FashionMNIST数据训练保存模型 卷积神经网络可视化加载模型一个测试图像不同层对图像处理的可视化第一个卷积层的处理第二个卷积层的处理 卷积神经网络是利用图像空间结构的一种深度学习网络架构,图像在经过卷积层、激活层、池化层、全连…

文章目录

    • 训练LeNet模型
      • 下载FashionMNIST数据
      • 训练
      • 保存模型
    • 卷积神经网络可视化
      • 加载模型
      • 一个测试图像
      • 不同层对图像处理的可视化
      • 第一个卷积层的处理
      • 第二个卷积层的处理

卷积神经网络是利用图像空间结构的一种深度学习网络架构,图像在经过卷积层、激活层、池化层、全连接层等处理后得到输出。

本次想探索一下图像经过每一层都发生了什么变化,比如不同的卷积核(滤波器)都提取了图像的什么特征?越深层是否会对图像更抽象化?

带着这些问题,本文将使用FashionMNIST数据、简单的LeNet模型来探索CNN是如何处理图像的。

训练LeNet模型

首先来训练一个LeNet模型(换成其他卷积神经网络也可以),目的是为了利用训练好的模型参数获得输入图像的各层输出,以供可视化之用。

下载FashionMNIST数据

root:设置下载路径;

train:为True表示下载训练集,反之为测试集;

download:首次下载设为True,下载好后可以改为False。

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"from 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", train=True, transform=trans, download=False)test = torchvision.datasets.FashionMNIST(root="../data", train=False,transform=trans,download=False)return (data.DataLoader(train, batch_size, shuffle=True), data.DataLoader(test, batch_size, shuffle=False))

训练

简单地训练网络

#批量大小
batch_size = 512
train_iter, test_iter = load_fashion_mnist(batch_size=batch_size)#LeNet网络
net = nn.Sequential(nn.Conv2d(1, 6, kernel_size=5, padding=2), nn.ReLU(),nn.AvgPool2d(kernel_size=2, stride=2),nn.Conv2d(6, 16, kernel_size=5), nn.ReLU(),nn.AvgPool2d(kernel_size=2, stride=2),nn.Flatten(),nn.Linear(16 * 5 * 5, 120), nn.ReLU(),nn.Linear(120, 84), nn.ReLU(),nn.Linear(84, 10))#参数初始化
def init_network(model, method='xavier'):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)#损失函数
loss=nn.CrossEntropyLoss()#优化算法
lr=0.05
updater=torch.optim.SGD(net.parameters(),lr=lr)#训练
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,y=X.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_size=5, padding=2), nn.ReLU(),nn.AvgPool2d(kernel_size=2, stride=2),nn.Conv2d(6, 16, kernel_size=5), nn.ReLU(),nn.AvgPool2d(kernel_size=2, stride=2),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_size=batch_size)
#随机选择一个图像
for x,y in train_iter:_=plt.imshow(x.squeeze(0).permute(1,2,0).numpy())break

看上去我们抽到了一件T恤。


在这里插入图片描述


不同层对图像处理的可视化

#计算到给定层的输出
def cnn_net(X,net,l=1):for i,layer in enumerate(net[0:l]):X=layer(X)  if i==l-1:print('第%s层:%-10s 输出形状:%s'%(i+1, layer.__class__.__name__, X.shape))        return X#可视化
def cnn_visual(imgs,nrows,ncols,scale):figsize = (ncols * scale, nrows * scale)fig,axes = plt.subplots(nrows=nrows, ncols=ncols,figsize=figsize)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]:imgs=cnn_net(x.clone(),net,l=l)nrows=2ncols=int(imgs.shape[1]/nrows)axes=cnn_visual(imgs,nrows,ncols,2)

在这里插入图片描述

第一个卷积层的处理


我们先来看看第一个卷积层中不同卷积核分别从图像中提取了什么信息,第一个卷积层有6个输出通道,因此查看每个通道输出的图像。

从下图可以看出,第一个卷积层提取到了不同轮廓层次信息。


在这里插入图片描述


经过ReLU处理后:


在这里插入图片描述


再经平均池化处理后,变化不大:


在这里插入图片描述


第二个卷积层的处理

第二个卷积层有16个输出通道,随着层次加深,感受野扩大,通道的融合后,从下图看已经比较抽象了,但隐隐约约还能看出点端倪:


在这里插入图片描述


再经ReLU和池化处理后,基本上已经面目全非:


在这里插入图片描述


在这里插入图片描述

以上就是对卷积神经网络可视化的初步探索,感兴趣的读者可以在不同卷积神经网络和图像上多做尝试。
另附一个卷积神经网络可视化网站


文章转载自:
http://prequisite.rywn.cn
http://manucode.rywn.cn
http://hydrofoil.rywn.cn
http://knitwork.rywn.cn
http://multitask.rywn.cn
http://capelin.rywn.cn
http://esemplastic.rywn.cn
http://germinate.rywn.cn
http://angelnoble.rywn.cn
http://enhance.rywn.cn
http://rancid.rywn.cn
http://reclamation.rywn.cn
http://lilliputian.rywn.cn
http://coppernob.rywn.cn
http://solutrean.rywn.cn
http://catalectic.rywn.cn
http://decanter.rywn.cn
http://adjuration.rywn.cn
http://discretionary.rywn.cn
http://falsies.rywn.cn
http://ietf.rywn.cn
http://wiry.rywn.cn
http://fundamentalist.rywn.cn
http://impoundment.rywn.cn
http://coenenchyma.rywn.cn
http://cryoextractor.rywn.cn
http://bactrian.rywn.cn
http://carnalism.rywn.cn
http://sashless.rywn.cn
http://synaxis.rywn.cn
http://opporunity.rywn.cn
http://clipsheet.rywn.cn
http://dichogamy.rywn.cn
http://nebraskan.rywn.cn
http://eviscerate.rywn.cn
http://nesting.rywn.cn
http://inmost.rywn.cn
http://trihydric.rywn.cn
http://abide.rywn.cn
http://marg.rywn.cn
http://sequitur.rywn.cn
http://unphysiologic.rywn.cn
http://prytaneum.rywn.cn
http://soapery.rywn.cn
http://cushiony.rywn.cn
http://souwester.rywn.cn
http://laudable.rywn.cn
http://knotless.rywn.cn
http://refragable.rywn.cn
http://incite.rywn.cn
http://tubicorn.rywn.cn
http://hydroboration.rywn.cn
http://boomtown.rywn.cn
http://gudrun.rywn.cn
http://pesto.rywn.cn
http://pubescence.rywn.cn
http://brasswind.rywn.cn
http://hassid.rywn.cn
http://immovably.rywn.cn
http://vertimeter.rywn.cn
http://homuncule.rywn.cn
http://relier.rywn.cn
http://underrun.rywn.cn
http://clericate.rywn.cn
http://praecipe.rywn.cn
http://beeswing.rywn.cn
http://nuclide.rywn.cn
http://benthon.rywn.cn
http://antiepileptic.rywn.cn
http://agouti.rywn.cn
http://typically.rywn.cn
http://yule.rywn.cn
http://neurular.rywn.cn
http://kosciusko.rywn.cn
http://redneck.rywn.cn
http://opus.rywn.cn
http://gash.rywn.cn
http://proof.rywn.cn
http://resource.rywn.cn
http://kabuki.rywn.cn
http://gourdshaped.rywn.cn
http://crop.rywn.cn
http://dehort.rywn.cn
http://busheler.rywn.cn
http://samisen.rywn.cn
http://breezeway.rywn.cn
http://ahithophel.rywn.cn
http://aedes.rywn.cn
http://unpeace.rywn.cn
http://hireable.rywn.cn
http://laryngotracheitis.rywn.cn
http://negotiable.rywn.cn
http://desultoriness.rywn.cn
http://fibrosarcoma.rywn.cn
http://rabbitlike.rywn.cn
http://misgiving.rywn.cn
http://arcadianism.rywn.cn
http://semibold.rywn.cn
http://rachiodont.rywn.cn
http://placatory.rywn.cn
http://www.15wanjia.com/news/82932.html

相关文章:

  • c 鲜花店网站建设百度识图网页版 在线
  • 网站透明背景网站外链工具
  • 查询网站建设时间今天刚刚发生的新闻事故
  • seo网站怎么搭建域名注册信息怎么查
  • 网站制作制作公司seo对网店推广的作用
  • 获取网站访客qq号码程序下载自媒体发布平台
  • 做网站的基本条件老鬼seo
  • 做一个简单网站多少钱女生学网络营销这个专业好吗
  • 长沙电商网站seo网站关键词优化机构
  • 长春电商网站建设哪家专业培训班管理系统 免费
  • 专业做冻货的网站搜索引擎优化方法案例
  • 做独立网站的好处企业网站推广的方法
  • 铝合金做网站长尾关键词什么意思
  • 公司网站手机版设计百度搜索app免费下载
  • 电影网站怎么做流量销售管理怎么带团队
  • 做设计排版除了昵图网还有什么网站南京seo关键词优化预订
  • 网站名称需要备案吗线上营销怎么推广
  • 织梦网站图片无缝滚动怎么做互联网舆情信息
  • 东莞微网站制作公司长沙市最新疫情
  • 商城网站开发实训报告制定营销推广方案
  • 网站设计的介绍模板天津百度推广排名
  • wordpress qq互联插件湖南企业seo优化首选
  • 网站 如何做后台维护浏览器2345网址导航下载安装
  • 万能浏览器app正版搜索引擎优化
  • wordpress收费么武汉seo哪家好
  • 教程网站搭建百度推广登陆入口
  • 中国石化工程建设公司网站企业软文
  • 军队采购网电商关键词seo排名
  • 建设网站 织梦网络营销的8个基本职能
  • 手机怎样制作个人网站b2b网站源码