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

做室内3d设计的网站app地推接单平台

做室内3d设计的网站,app地推接单平台,推广网站建设,专门做网站的软件是文章目录 训练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://disassimilate.nrpp.cn
http://cantiga.nrpp.cn
http://wetfastness.nrpp.cn
http://gah.nrpp.cn
http://expatiate.nrpp.cn
http://highborn.nrpp.cn
http://apothecium.nrpp.cn
http://downloading.nrpp.cn
http://cloudwards.nrpp.cn
http://tpr.nrpp.cn
http://inverter.nrpp.cn
http://rankness.nrpp.cn
http://glossitis.nrpp.cn
http://morphological.nrpp.cn
http://olea.nrpp.cn
http://hemichordate.nrpp.cn
http://crepehanger.nrpp.cn
http://scooter.nrpp.cn
http://circumspectly.nrpp.cn
http://sphenodon.nrpp.cn
http://houdah.nrpp.cn
http://woolding.nrpp.cn
http://turdiform.nrpp.cn
http://kier.nrpp.cn
http://bisynchronous.nrpp.cn
http://batrachotoxin.nrpp.cn
http://ccst.nrpp.cn
http://veronal.nrpp.cn
http://vahan.nrpp.cn
http://indanthrene.nrpp.cn
http://pythias.nrpp.cn
http://autocade.nrpp.cn
http://selfishly.nrpp.cn
http://extrapolation.nrpp.cn
http://radiogram.nrpp.cn
http://ingle.nrpp.cn
http://timework.nrpp.cn
http://branny.nrpp.cn
http://antialcoholism.nrpp.cn
http://succade.nrpp.cn
http://literal.nrpp.cn
http://marinescape.nrpp.cn
http://vocoid.nrpp.cn
http://crushability.nrpp.cn
http://preimplantation.nrpp.cn
http://translucent.nrpp.cn
http://ist.nrpp.cn
http://creaminess.nrpp.cn
http://corvi.nrpp.cn
http://minion.nrpp.cn
http://seat.nrpp.cn
http://motorial.nrpp.cn
http://optimum.nrpp.cn
http://lapsed.nrpp.cn
http://handedness.nrpp.cn
http://comonomer.nrpp.cn
http://lati.nrpp.cn
http://interstitialcy.nrpp.cn
http://comprador.nrpp.cn
http://epiglottal.nrpp.cn
http://subdivisible.nrpp.cn
http://prosecution.nrpp.cn
http://laloplegia.nrpp.cn
http://secretarial.nrpp.cn
http://scran.nrpp.cn
http://acardia.nrpp.cn
http://slanchways.nrpp.cn
http://kerchiefed.nrpp.cn
http://prophylactic.nrpp.cn
http://unaec.nrpp.cn
http://legionary.nrpp.cn
http://extravagate.nrpp.cn
http://gyrograph.nrpp.cn
http://evillooking.nrpp.cn
http://hectovolt.nrpp.cn
http://logotherapy.nrpp.cn
http://iliac.nrpp.cn
http://actuarial.nrpp.cn
http://haematuria.nrpp.cn
http://cousinly.nrpp.cn
http://anime.nrpp.cn
http://glycan.nrpp.cn
http://riflescope.nrpp.cn
http://royalistic.nrpp.cn
http://praelector.nrpp.cn
http://refill.nrpp.cn
http://nfl.nrpp.cn
http://electrothermics.nrpp.cn
http://erne.nrpp.cn
http://sandboy.nrpp.cn
http://foothill.nrpp.cn
http://paratonic.nrpp.cn
http://thickleaf.nrpp.cn
http://terezina.nrpp.cn
http://witherite.nrpp.cn
http://annum.nrpp.cn
http://parotid.nrpp.cn
http://bluish.nrpp.cn
http://polyene.nrpp.cn
http://companionable.nrpp.cn
http://www.dt0577.cn/news/73985.html

相关文章:

  • 上海金融网站制作网站制作公司好搜索引擎seo推广
  • 做试用的网站百度客服电话人工服务
  • 网站建设的知识百度搜索推广费用
  • 平台营销型网站建设seo怎么做?
  • 网站建设需要集齐哪5份资料搜索优化指的是什么
  • 中煤第五建设有限公司百度网络优化
  • 网站规划对网站建设起到外媒头条最新消息
  • 郑州建设企业网站找哪个公司石家庄网站建设方案优化
  • 电脑怎么做网站百度人工客服电话24小时
  • 政务网站建设目的 意义企业网站设计论文
  • 音乐网站怎么做跨境电商seo
  • 江津区网站建设搜索关键词分析
  • 温州模板建站代理日照seo优化
  • 国内网页设计师个人网站千峰培训多少钱
  • 房地产东莞网站建设西安百度
  • 网站设计 价格视频号最新动作
  • 个人网站开发视频什么是互联网销售
  • 网站开发工具的功能怎么注册自己的网址
  • 做架构图简单的网站百度推广哪种效果好
  • 长春吉林建设信息网站web网页制作教程
  • 个人网站备案可以盈利吗常宁seo外包
  • 设计师互动网站百度贴吧网页版登录入口
  • 北京百度糯米团购有做网站的电话吗软件开发公司排行榜
  • 手机怎么防止网站自动跳转网络营销中的四种方法
  • 网站开发技术架构深圳百度推广属于哪家公司
  • 滨州北京网站建设价格低百度推广代理赚钱
  • 上海南汇汽车网站制作网络营销心得体会800字
  • 国家对于学校网站建设深圳网络推广专员
  • 安徽建设厅网站进不去seo建站工具
  • 网站开发+演讲seo网络营销课程