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

html5旅游网站seo公司上海牛巨微

html5旅游网站,seo公司上海牛巨微,视频制作软件下载安装,仙居做网站公司深度卷积神经网络AlexNet 文字过多#xff0c;但是重点已经标出来了 背景 在LeNet提出后的将近20年里#xff0c;神经网络一度被其他机器学习方法超越#xff0c;如支持向量机。虽然LeNet可以在早期的小数据集上取得好的成绩#xff0c;但是在更大的真实数据集上的表现并…深度卷积神经网络AlexNet 文字过多但是重点已经标出来了 背景 在LeNet提出后的将近20年里神经网络一度被其他机器学习方法超越如支持向量机。虽然LeNet可以在早期的小数据集上取得好的成绩但是在更大的真实数据集上的表现并不尽如人意。一方面神经网络计算复杂。虽然20世纪90年代也有过一些针对神经网络的加速硬件但并没有像之后GPU那样大量普及。因此训练一个多通道、多层和有大量参数的卷积神经网络在当年很难完成。另一方面当年研究者还没有大量深入研究参数初始化和非凸优化算法等诸多领域导致复杂的神经网络的训练通常较困难。 神经网络可以直接基于图像的原始像素进行分类。这种称为端到端end-to-end的方法节省了很多中间步骤。然而在很长一段时间里更流行的是研究者通过勤劳与智慧所设计并生成的手工特征。这类图像分类研究的主要流程是 获取图像数据集使用已有的特征提取函数生成图像的特征使用机器学习模型对图像的特征分类。 当时认为的机器学习部分仅限最后这一步。如果那时候跟机器学习研究者交谈他们会认为机器学习既重要又优美。优雅的定理证明了许多分类器的性质。机器学习领域生机勃勃、严谨而且极其有用。然而如果跟计算机视觉研究者交谈则是另外一幅景象。他们会告诉你图像识别里“不可告人”的现实是计算机视觉流程中真正重要的是数据和特征。也就是说使用较干净的数据集和较有效的特征甚至比机器学习模型的选择对图像分类结果的影响更大。 特征的表示 在相当长的时间里特征都是基于各式各样手工设计的函数从数据中提取的。事实上不少研究者通过提出新的特征提取函数不断改进图像分类结果。 然而另一些研究者认为特征本身也应该由学习得来。他们还相信为了表征足够复杂的输入特征本身应该分级表示。多层神经网络可能可以学得数据的多级表征并逐级表示越来越抽象的概念或模式。 以图像分类为例二维卷积层中物体边缘检测的例子。在多层神经网络中图像的第一级的表示可以是在特定的位置和⻆度是否出现边缘 而第二级的表示说不定能够将这些边缘组合出有趣的模式如花纹 在第三级的表示中也许上一级的花纹能进一步汇合成对应物体特定部位的模式。这样逐级表示下去最终模型能够较容易根据最后一级的表示完成分类任务。需要强调的是输入的逐级表示由多层模型中的参数决定而这些参数都是学出来的。 AlexNet AlexNet网络结构 直接上图AlexNet网络结构 AlexNet包含8层变换其中有5层卷积和2层全连接隐藏层以及1个全连接输出层。 第一层中的卷积窗口形状是11×1111\times1111×11第二层中的卷积窗口形状减小到5×55\times55×5之后全采用3×33\times33×3第一、第二和第五个卷积层之后都使用了窗口形状为3×33\times33×3、步幅为2的最大池化层AlexNet使用的卷积通道数大于LeNet中的卷积通道数几十倍紧接着最后一个卷积层的是两个输出个数为4096的全连接层 简单说网络结构就是 卷积(96个11∗11的核)(步长为4)→降采样(最大池化)(3∗3的核步长2)→.卷积(256个5∗5的核)(padding为2)→降采样(最大池化)(3∗3的核步长2)→.卷积(384个3∗3的核)(padding为1)→.卷积(384个3∗3的核)(padding为1)→.卷积(256个3∗3的核)(padding为1)→降采样(最大池化)(3∗3的核步长2)→.全连接6∗6∗256→4096→全连接4096→4096→全连接4096→10\begin{matrix}卷积 \\ (96个11*11的核) \\(步长为4)\end{matrix} \rightarrow \begin{matrix}降采样(最大池化) \\ (3*3的核步长2) \end{matrix}\rightarrow \\.\\ \begin{matrix}卷积 \\ (256个5*5的核)\\(padding为2) \end{matrix} \rightarrow \begin{matrix}降采样(最大池化) \\ (3*3的核步长2) \end{matrix}\rightarrow \\.\\ \begin{matrix}卷积 \\ (384个3*3的核)\\(padding为1)\end{matrix} \rightarrow \\.\\ \begin{matrix}卷积 \\ (384个3*3的核)\\(padding为1)\end{matrix} \rightarrow \\.\\ \begin{matrix}卷积 \\ (256个3*3的核)\\(padding为1)\end{matrix} \rightarrow \begin{matrix}降采样(最大池化) \\ (3*3的核步长2) \end{matrix}\rightarrow \\.\\ \begin{matrix}全连接 \\ 6*6*256\rightarrow4096\end{matrix}\rightarrow \begin{matrix}全连接 \\ 4096\rightarrow4096\end{matrix}\rightarrow \begin{matrix}全连接 \\ 4096\rightarrow10\end{matrix} 卷积(96个11∗11的核)(步长为4)​→降采样(最大池化)(3∗3的核步长2)​→.卷积(256个5∗5的核)(padding为2)​→降采样(最大池化)(3∗3的核步长2)​→.卷积(384个3∗3的核)(padding为1)​→.卷积(384个3∗3的核)(padding为1)​→.卷积(256个3∗3的核)(padding为1)​→降采样(最大池化)(3∗3的核步长2)​→.全连接6∗6∗256→4096​→全连接4096→4096​→全连接4096→10​ 每层尺寸解析 (1) 原始图像的227*227*3的图像最开始是224*224*3为后续处理,t需要调整为227 卷积(96个11∗11的核)(步长为4)⌊(nh−khphsh)/sh⌋×⌊(nw−kwpwsw)/sw⌋⌊(227−110×24)/4⌋×⌊(227−110×24)/4⌋55×55.降采样(最大池化)(3∗3的核步长2)⌊(nh−khphsh)/sh⌋×⌊(nw−kwpwsw)/sw⌋⌊(55−30×22)/2⌋×⌊(55−30×22)/2⌋27×27\begin{matrix}卷积 \\ (96个11*11的核) \\(步长为4)\end{matrix}\\ \lfloor(n_h-k_hp_hs_h)/s_h\rfloor \times \lfloor(n_w-k_wp_ws_w)/s_w\rfloor \\ \lfloor(227-110\times24)/4\rfloor \times \lfloor(227-110\times24)/4\rfloor 55 \times 55 \\.\\ \begin{matrix}降采样(最大池化) \\ (3*3的核步长2) \end{matrix} \\ \lfloor(n_h-k_hp_hs_h)/s_h\rfloor \times \lfloor(n_w-k_wp_ws_w)/s_w\rfloor \\ \lfloor(55-30\times22)/2\rfloor \times \lfloor(55-30\times22)/2\rfloor 27 \times 27 卷积(96个11∗11的核)(步长为4)​⌊(nh​−kh​ph​sh​)/sh​⌋×⌊(nw​−kw​pw​sw​)/sw​⌋⌊(227−110×24)/4⌋×⌊(227−110×24)/4⌋55×55.降采样(最大池化)(3∗3的核步长2)​⌊(nh​−kh​ph​sh​)/sh​⌋×⌊(nw​−kw​pw​sw​)/sw​⌋⌊(55−30×22)/2⌋×⌊(55−30×22)/2⌋27×27 第一层卷积层结束后形成的图像层的规模为27∗27∗9627*27*9627∗27∗96.分别由96个卷积核对应生成这96层数据分为2组每组48个像素层 (2) 卷积(256个5∗5的核)(padding为2)⌊(nh−khphsh)/sh⌋×⌊(nw−kwpwsw)/sw⌋⌊(27−52×21)/1⌋×⌊(27−52×21)/1⌋27×27.降采样(最大池化)(3∗3的核步长2)⌊(nh−khphsh)/sh⌋×⌊(nw−kwpwsw)/sw⌋⌊(27−30×22)/2⌋×⌊(27−30×22)/2⌋13×13\begin{matrix}卷积 \\ (256个5*5的核)\\(padding为2) \end{matrix}\\ \lfloor(n_h-k_hp_hs_h)/s_h\rfloor \times \lfloor(n_w-k_wp_ws_w)/s_w\rfloor \\ \lfloor(27-52\times21)/1\rfloor \times \lfloor(27-52\times21)/1\rfloor 27 \times 27 \\.\\ \begin{matrix}降采样(最大池化) \\ (3*3的核步长2) \end{matrix} \\ \lfloor(n_h-k_hp_hs_h)/s_h\rfloor \times \lfloor(n_w-k_wp_ws_w)/s_w\rfloor \\ \lfloor(27-30\times22)/2\rfloor \times \lfloor(27-30\times22)/2\rfloor 13 \times 13 卷积(256个5∗5的核)(padding为2)​⌊(nh​−kh​ph​sh​)/sh​⌋×⌊(nw​−kw​pw​sw​)/sw​⌋⌊(27−52×21)/1⌋×⌊(27−52×21)/1⌋27×27.降采样(最大池化)(3∗3的核步长2)​⌊(nh​−kh​ph​sh​)/sh​⌋×⌊(nw​−kw​pw​sw​)/sw​⌋⌊(27−30×22)/2⌋×⌊(27−30×22)/2⌋13×13 第二层输入数据为第一层输出的27*27*96的像素层分为2组像素数据两组像素数据分别在两个不同的GPU中进行运算一共有256个卷积核即池化后像素的规模为2组13*13*128的像素层。 (3) 卷积(384个3∗3的核)(padding为1)⌊(nh−khphsh)/sh⌋×⌊(nw−kwpwsw)/sw⌋⌊(13−31×21)/1⌋×⌊(13−31×21)/1⌋13×13\begin{matrix}卷积 \\ (384个3*3的核)\\(padding为1)\end{matrix} \\ \lfloor(n_h-k_hp_hs_h)/s_h\rfloor \times \lfloor(n_w-k_wp_ws_w)/s_w\rfloor \\ \lfloor(13-31\times21)/1\rfloor \times \lfloor(13-31\times21)/1\rfloor 13 \times 13 卷积(384个3∗3的核)(padding为1)​⌊(nh​−kh​ph​sh​)/sh​⌋×⌊(nw​−kw​pw​sw​)/sw​⌋⌊(13−31×21)/1⌋×⌊(13−31×21)/1⌋13×13 一共有384个卷积核同理也就是13*13*192两组像素层。 (4) 卷积(384个3∗3的核)(padding为1)⌊(nh−khphsh)/sh⌋×⌊(nw−kwpwsw)/sw⌋⌊(13−31×21)/1⌋×⌊(13−31×21)/1⌋13×13\begin{matrix}卷积 \\ (384个3*3的核)\\(padding为1)\end{matrix} \\ \lfloor(n_h-k_hp_hs_h)/s_h\rfloor \times \lfloor(n_w-k_wp_ws_w)/s_w\rfloor \\ \lfloor(13-31\times21)/1\rfloor \times \lfloor(13-31\times21)/1\rfloor 13 \times 13 卷积(384个3∗3的核)(padding为1)​⌊(nh​−kh​ph​sh​)/sh​⌋×⌊(nw​−kw​pw​sw​)/sw​⌋⌊(13−31×21)/1⌋×⌊(13−31×21)/1⌋13×13 一共有384个卷积核同理也就是13*13*192两组像素层。 (5) 卷积(256个3∗3的核)(padding为1)⌊(nh−khphsh)/sh⌋×⌊(nw−kwpwsw)/sw⌋⌊(13−32×11)/1⌋×⌊(13−32×11)/1⌋13×13.降采样(最大池化)(3∗3的核步长2)⌊(nh−khphsh)/sh⌋×⌊(nw−kwpwsw)/sw⌋⌊(13−30×22)/2⌋×⌊(13−30×22)/2⌋6×6\begin{matrix}卷积 \\ (256个3*3的核)\\(padding为1) \end{matrix}\\ \lfloor(n_h-k_hp_hs_h)/s_h\rfloor \times \lfloor(n_w-k_wp_ws_w)/s_w\rfloor \\ \lfloor(13-32\times11)/1\rfloor \times \lfloor(13-32\times11)/1\rfloor 13 \times 13 \\.\\ \begin{matrix}降采样(最大池化) \\ (3*3的核步长2) \end{matrix} \\ \lfloor(n_h-k_hp_hs_h)/s_h\rfloor \times \lfloor(n_w-k_wp_ws_w)/s_w\rfloor \\ \lfloor(13-30\times22)/2\rfloor \times \lfloor(13-30\times22)/2\rfloor 6 \times 6 卷积(256个3∗3的核)(padding为1)​⌊(nh​−kh​ph​sh​)/sh​⌋×⌊(nw​−kw​pw​sw​)/sw​⌋⌊(13−32×11)/1⌋×⌊(13−32×11)/1⌋13×13.降采样(最大池化)(3∗3的核步长2)​⌊(nh​−kh​ph​sh​)/sh​⌋×⌊(nw​−kw​pw​sw​)/sw​⌋⌊(13−30×22)/2⌋×⌊(13−30×22)/2⌋6×6 一共有256个卷积核同理也就是6*6*128两组像素层。 (6) 第6层输入数据的尺寸是6*6*256采用6*6*256尺寸的滤波器对第六层的输入数据进行卷积运算每个6*6*256尺寸的滤波器对第六层的输入数据进行卷积运算生成一个运算结果通过一个神经元输出这个运算结果共有4096个6*6*256尺寸的滤波器对输入数据进行卷积通过4096个神经元的输出运算结果然后通过ReLU激活函数以及dropout运算输出4096个本层的输出结果值。所以结果是2个2048输出结果组 (7) 第6层输出的4096个数据与第7层的4096个神经元进行全连接然后由ReLU和Dropout进行处理后生成4096个数据。所以结果是2个2048输出结果组 (8) 第7层输入的4096个数据与第8层的1000个神经元进行全连接。 与LeNet的显著区别 AlexNet将sigmoid激活函数改成了更加简单的ReLU激活函数 (ReLU激活函数的计算更简单例如它并没有sigmoid激活函数中的求幂运算。另一方面ReLU激活函数在不同的参数初始化方法下使模型更容易训练。这是由于当sigmoid激活函数输出极接近0或1时这些区域的梯度几乎为0从而造成反向传播无法继续更新部分模型参数而ReLU激活函数在正区间的梯度恒为1。因此若模型参数初始化不当sigmoid函数可能在正区间得到几乎为0的梯度从而令模型无法得到有效训练。)AlexNet通过丢弃法来控制全连接层的模型复杂度。而LeNet并没有使用丢弃法。AlexNet引入了大量的图像增广如翻转、裁剪和颜色变化从而进一步扩大数据集来缓解过拟合。 实现简化过的AlexNet import time import torch from torch import nn, optim import torchvisiondevice torch.device(cuda if torch.cuda.is_available() else cpu)class AlexNet(nn.Module):def __init__(self):super(AlexNet, self).__init__()self.conv nn.Sequential(nn.Conv2d(1, 96, 11, 4), # in_channels, out_channels, kernel_size, stride, paddingnn.ReLU(),nn.MaxPool2d(3, 2), # kernel_size, stride# 减小卷积窗口使用填充为2来使得输入与输出的高和宽一致且增大输出通道数nn.Conv2d(96, 256, 5, 1, 2),nn.ReLU(),nn.MaxPool2d(3, 2),# 连续3个卷积层且使用更小的卷积窗口。除了最后的卷积层外进一步增大了输出通道数。# 前两个卷积层后不使用池化层来减小输入的高和宽nn.Conv2d(256, 384, 3, 1, 1),nn.ReLU(),nn.Conv2d(384, 384, 3, 1, 1),nn.ReLU(),nn.Conv2d(384, 256, 3, 1, 1),nn.ReLU(),nn.MaxPool2d(3, 2))# 这里全连接层的输出个数比LeNet中的大数倍。使用丢弃层来缓解过拟合self.fc nn.Sequential(nn.Linear(256*5*5, 4096),nn.ReLU(),nn.Dropout(0.5),nn.Linear(4096, 4096),nn.ReLU(),nn.Dropout(0.5),# 输出层。由于这里使用Fashion-MNIST所以用类别数为10而非论文中的1000nn.Linear(4096, 10),)def forward(self, img):feature self.conv(img)output self.fc(feature.view(img.shape[0], -1))return outputnet AlexNet() print(net)AlexNet((conv): Sequential((0): Conv2d(1, 96, kernel_size(11, 11), stride(4, 4))(1): ReLU()(2): MaxPool2d(kernel_size3, stride2, padding0, dilation1, ceil_modeFalse)(3): Conv2d(96, 256, kernel_size(5, 5), stride(1, 1), padding(2, 2))(4): ReLU()(5): MaxPool2d(kernel_size3, stride2, padding0, dilation1, ceil_modeFalse)(6): Conv2d(256, 384, kernel_size(3, 3), stride(1, 1), padding(1, 1))(7): ReLU()(8): Conv2d(384, 384, kernel_size(3, 3), stride(1, 1), padding(1, 1))(9): ReLU()(10): Conv2d(384, 256, kernel_size(3, 3), stride(1, 1), padding(1, 1))(11): ReLU()(12): MaxPool2d(kernel_size3, stride2, padding0, dilation1, ceil_modeFalse))(fc): Sequential((0): Linear(in_features6400, out_features4096, biasTrue)(1): ReLU()(2): Dropout(p0.5)(3): Linear(in_features4096, out_features4096, biasTrue)(4): ReLU()(5): Dropout(p0.5)(6): Linear(in_features4096, out_features10, biasTrue)) )读取数据 def load_data_fashion_mnist(batch_size, resizeNone, root~/Datasets/FashionMNIST):Download the fashion mnist dataset and then load into memory.trans []if resize:trans.append(torchvision.transforms.Resize(sizeresize))trans.append(torchvision.transforms.ToTensor())transform torchvision.transforms.Compose(trans)mnist_train torchvision.datasets.FashionMNIST(rootroot, trainTrue, downloadTrue, transformtransform)mnist_test torchvision.datasets.FashionMNIST(rootroot, trainFalse, downloadTrue, transformtransform)train_iter torch.utils.data.DataLoader(mnist_train, batch_sizebatch_size, shuffleTrue, num_workers4)test_iter torch.utils.data.DataLoader(mnist_test, batch_sizebatch_size, shuffleFalse, num_workers4)return train_iter, test_iterbatch_size 128 # 如出现“out of memory”的报错信息可减小batch_size或resize train_iter, test_iter load_data_fashion_mnist(batch_size, resize224)训练吧 lr, num_epochs 0.001, 5 optimizer torch.optim.Adam(net.parameters(), lrlr) def train(net, train_iter, test_iter, batch_size, optimizer, device, num_epochs):net net.to(device)print(training on , device)loss torch.nn.CrossEntropyLoss()for epoch in range(num_epochs):train_l_sum, train_acc_sum, n, batch_count, start 0.0, 0.0, 0, 0, time.time()for X, y in train_iter:X X.to(device)y y.to(device)y_hat net(X)l loss(y_hat, y)optimizer.zero_grad()l.backward()optimizer.step()train_l_sum l.cpu().item()train_acc_sum (y_hat.argmax(dim1) y).sum().cpu().item()n y.shape[0]batch_count 1test_acc evaluate_accuracy(test_iter, net)print(epoch %d, loss %.4f, train acc %.3f, test acc %.3f, time %.1f sec% (epoch 1, train_l_sum / batch_count, train_acc_sum / n, test_acc, time.time() - start))train(net, train_iter, test_iter, batch_size, optimizer, device, num_epochs)《动手学深度学习》
http://www.huolong8.cn/news/179666/

相关文章:

  • 淮南 搭建一个企业展示网站零基础短视频制作培训
  • 目前流行的网站开发设计大型网站的制作
  • 网站建设需求文档下载wordpress 酷狗
  • 中国建设银行个人登陆网站网站建设的案例
  • 企业网站建设与推广营销型网站的标准
  • 如何修改网站建设银行网站怎么开通短信服务
  • 提供网站建设公司东莞网站建设外贸
  • 东莞做网站推广的公司网站推广软件免费下载
  • 张家港网站制作企优劳务公司简介模板
  • 合肥晚报社官方网站一个域名两个网站
  • 文化礼堂建设情况网站网站建设500元
  • 地方网站做相亲赢利点在哪里微信公众平台申请入口
  • 做直播网站需要多少钱网站建设报价新鸿儒
  • html网站模板免费招聘网络营销推广人员
  • 承德网站制作多少钱选择锦州网站建设
  • 定制网站和模板网站有何区别网站开发培训心得
  • 顶尖网站建设公司陕西交通建设集团蓝商公司网站
  • 建设心理网站的背景ppt模板免费下载素材库
  • 沧州商贸行业网站建设简单的wordpress主题
  • 云主机可以做多少网站空间小程序搭建需要多久
  • 电商网站开发技术与维护h5网站如何做
  • 南京seo网站管理网站建设用户调研
  • 阿里网站注册动漫wordpress主题下载
  • 网站建设怎么选择MySQL数据库大小小米发布会直播在线
  • 有多少人自己做电影网站seo自学网免费
  • 设计师的素材网站岳阳网页
  • 不会做网站建湖做网站多少钱
  • 网站后台管理系统开发沈阳不孕不育医院前三名
  • 建设网站需要哪些设备网站的定义
  • 襄阳网络公司 网站建设去势 wordpress