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

深度学习-Pytorch实现经典AlexNet网络:山高我为峰

深度学习-Pytorch实现经典AlexNet网络之山高我为峰

深度学习中,经典网络引领一波又一波的技术革命,从LetNet到当前最火的GPT所用的Transformer,它们把AI技术不断推向高潮。2012年AlexNet大放异彩,它把深度学习技术引领第一个高峰,打开人们的视野。

用pytorch构建CNN经典网络模型AlexNet,还可以用数据进行训练模型,得到一个优化的模型。

数据分析

数据分析-Pandas如何转换产生新列

数据分析-Pandas如何统计数据概况

数据分析-Pandas如何轻松处理时间序列数据

数据分析-Pandas如何选择数据子集

数据分析-Pandas如何重塑数据表-CSDN博客

经典算法

经典算法-遗传算法的python实现

经典算法-模拟退火算法的python实现

经典算法-粒子群算法的python实现-CSDN博客

AlexNet概述

第一个典型的CNN是LeNet5网络,而第一个引领技术潮流的CNN却是AlexNet。2012年在全球知名的图像识别竞赛 ILSVRC 中,AlexNet 横空出世,直接将错误率降低了近 10 个百分点。这是断崖式的领先。当时AlexNet的影响,和现在chatGPT带来的效应相当。

网络结构

输入图像分辨率:227x227x3 通道

结构:

9层:1个输入层,5个卷积层,2个全连接层,1个输出层,因GPU内存不够,分为上下两组;

(1)C1:11x11 —>输出2组48个55×55大小的特征图–> ReLU --> LRN --> MaxPooling;

(2)C2:5x5 —>输出2组128个27×27大小的特征图–> ReLU --> LRN --> MaxPooling;

(3)C3:3x3 —>输出384个13×13大小的特征图–> ReLU;

(4)C4:3x3 —>输出2组192个13×13大小的特征图–> ReLU;

(5)C5:3x3 —>输出2组128个13×13大小的特征图–> ReLU --> MaxPooling;

(6)FC6 ----> 6x6,输入2组6x6x128特征图,输出4096个1x1全连接层–> ReLU --> Dropout;

(7)FC7 ----> 输入4096个神经元,输出4096个神经元–> ReLU --> Dropout

(8)输出层—> 输入4096个神经元–>softmax -->输出 1000分类

整个AlexNet网络包含的神经元个数为:

290400 + 186624 + 64896 + 64896 + 43264 + 4096 + 4096 + 1000 = 659272

大约65万个神经元

整个AlexNet网络包含的参数数量为:

34944 + 307456 + 885120 + 663936 + 442624 + 37752832 + 16781312 + 4096000 = 60964224

大约6千万个参数

在这里插入图片描述

优势与不足

优势:采用激活函数ReLU,局部响应归一化,使用Dropout机制,Max Pooling重叠池化,双GPU训练,图像尺寸扩大227x227x3。

Pytorch实现

以下便是使用Pytorch实现的经典网络结构AlexNet

# AlexNet 227x227x3
class AlexNet(nn.Module):def __init__(self, channels, num_classes):super(AlexNet, self).__init__()self.features = nn.Sequential(# 输入通道数为3,彩色图片# 输出96、卷积核为11x11,步长为4,是AlexNet模型结构决定nn.Conv2d(channels, 96, kernel_size=11,stride=4, padding=2),nn.ReLU(),nn.MaxPool2d(kernel_size=3,stride=2),nn.Conv2d(96, 256,kernel_size=5, padding=2),nn.ReLU(),nn.MaxPool2d(kernel_size=3,stride=2),nn.Conv2d(256, 384, kernel_size=3, padding=1),nn.ReLU(),nn.Conv2d(384, 384, kernel_size=3,padding=1),nn.ReLU(),nn.Conv2d(384, 256, kernel_size=3,padding=1),nn.ReLU(),nn.MaxPool2d(kernel_size=3, stride=2))# 全连接层self.classifier = nn.Sequential(# 全连接的第一层,输入卷积输出的拉平值,即6*6*256# 输出为4096nn.Linear(in_features=6*6*256,out_features=4096),nn.ReLU(),# AlexNet采取了DropOut进行正则,防止过拟合nn.Dropout(p=0.5),nn.Linear(4096,4096),nn.ReLU(),nn.Dropout(p=0.5),# 最后一层,输出1000个类别,也是我们所说的softmax层nn.Linear(4096,num_classes))# 前向算法def forward(self,x):x = self.features(x)x = torch.flatten(x,1)result = self.classifier(x)return result

大家可以和LetNet5对照差异,也可以一窥DeepLearning技术的突破点。

在AlexNet开创一片天地后,CNN网络引领的深度学习蓬勃发展,造就人工智能技术革命的起点。

觉得有用 收藏 收藏 收藏

点个赞 点个赞 点个赞

End

GPT专栏文章:

GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案

GPT实战系列-LangChain + ChatGLM3构建天气查询助手

大模型查询工具助手之股票免费查询接口

GPT实战系列-简单聊聊LangChain

GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)

GPT实战系列-ChatGLM2模型的微调训练参数解读

GPT实战系列-如何用自己数据微调ChatGLM2模型训练

GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案

GPT实战系列-Baichuan2等大模型的计算精度与量化

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF

GPT实战系列-探究GPT等大模型的文本生成-CSDN博客

http://www.lryc.cn/news/311187.html

相关文章:

  • 25考研习题记录
  • 上海计算机学会 2023年12月月赛 丙组T4 迷宫(宽度优先搜索)
  • 【Boost搜索引擎项目】Day1 项目介绍+去标签和数据清洗框架搭建
  • 站群服务器需要多大内存
  • HTB Perfection
  • 如何远程连接MySQL数据库?
  • 【 HTML 及浏览器 】前端跨页面通信
  • 内存安全的编程语言
  • Excel常用公式总结非常实用
  • window路径特殊字符解决
  • 『大模型笔记』RAG 系统开发中的12大痛点及解决方案
  • VScode---php环境搭建
  • 【Vue3】3-6 : 仿ElementPlus框架的el-button按钮组件实
  • .datastore@cyberfear.com.mkp勒索病毒的最新威胁:如何恢复您的数据?
  • 23.基于springboot + vue实现的前后端分离-在线旅游网站系统(项目 + 论文PPT)
  • SpringCloud-RabbitMQ消息模型
  • Linux网络编程 ——UDP 通信
  • TDengine 签约树根互联,应对“高基数”难题
  • 实名制交友-智能匹配-仿二狗交友系统-TP6+uni-APP小程序H5公众号-源码交付-支持二开!
  • 在CentOS上使用Gunicorn和systemd完整部署Flask应用:详细指南
  • 【信息系统项目管理师】--【信息技术发展】--【新一代信息技术及应用】--【人工智能】
  • 注意力机制(代码实现案例)
  • 全量知识系统问题及SmartChat给出的答复 之8 三套工具之3语法解析器 之1
  • 软考59-上午题-【数据库】-小结+杂题
  • 【ARM Trace32(劳特巴赫) 高级篇 21 -- SystemTrace ITM 使用介绍】
  • Python系列(20)—— 循环语句
  • MYSQL的sql性能优化技巧
  • C#(C Sharp)学习笔记_数组的遍历【十】
  • 掌握未来技术:一站式深度学习学习平台体验!
  • Doris实战——特步集团零售数据仓库项目实践