AlexNet8详细原理(含tensorflow版源码)

CNN经典网络模型(二):AlexNet简介及代码实现(PyTorch超详细注释版) CNN经典网络模型之一:AlexNet,本文包含其简介及代码,在PyTorch中实现,进行超详细注释,适合新生小白阅读学习~ 阅读详情

AlexNet8原理

        AlexNet是一种深度卷积神经网络,由Alex Krizhevsky等人在2012年提出,它是第一个在ImageNet比赛中取得显著优势的卷积神经网络。AlexNet有着比LeNet5更深、更宽的网络结构,并且采用了Dropout、ReLU等多种技术来防止过拟合,提高模型的泛化能力。

AlexNet的网络结构包含了8个层:

  1. 输入层:224*224的彩色图像。

  2. 第一层卷积层:96个卷积核,每个卷积核的大小为11*11。采用ReLU作为激活函数。

  3. 第一层池化层:3*3的最大池化,步长为2。

  4. 第二层卷积层:256个卷积核,每个卷积核的大小为5*5。采用ReLU作为激活函数。

  5. 第二层池化层:3*3的最大池化,步长为2。

  6. 第三层卷积层:384个卷积核,每个卷积核的大小为3*3。采用ReLU作为激活函数。

  7. 第四层卷积层:384个卷积核,每个卷积核的大小为3*3。采用ReLU作为激活函数。

  8. 第五层卷积层:256个卷积核,每个卷积核的大小为3*3。采用ReLU作为激活函数。

  9. 全连接层1:4096个神经元,采用ReLU作为激活函数。采用Dropout技术来防止过拟合。

  10. 全连接层2:4096个神经元,采用ReLU作为激活函数。采用Dropout技术来防止过拟合。

  11. 输出层:1000个神经元,采用softmax函数作为激活函数,用于分类。

        AlexNet在ImageNet比赛中取得了远超其他模型的成绩,将分类误差降低到了16.4%!。(MISSING)它的成功启示了后来更加深入的卷积神经网络的发展。AlexNet的结构和思想成为了现代卷积神经网络的基础,它对于深度学习的发展具有重要的推动作用。

AlexNet8源码(tensorflow版)

import tensorflow as tf
import os
import numpy as np
from matplotlib import pyplot as plt
from tensorflow.keras.layers import Conv2D, BatchNormalization, Activation, MaxPool2D, Dropout, Flatten, Dense
from tensorflow.keras import Model

# np.set_printoptions(threshold=np.inf)

cifar10 = tf.keras.datasets.cifar10
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0


class AlexNet8(Model):
    def __init__(self):
        super(AlexNet8, self).__init__()
        self.c1 = Conv2D(filters=96, kernel_size=(3, 3))
        self.b1 = BatchNormalization()
        self.a1 = Activation('relu')
        self.p1 = MaxPool2D(pool_size=(3, 3), strides=2)

        self.c2 = Conv2D(filters=256, kernel_size=(3, 3))
        self.b2 = BatchNormalization()
        self.a2 = Activation('relu')
        self.p2 = MaxPool2D(pool_size=(3, 3), strides=2)

        self.c3 = Conv2D(filters=384, kernel_size=(3, 3), padding='same',
                         activation='relu')

        self.c4 = Conv2D(filters=384, kernel_size=(3, 3), padding='same',
                         activation='relu')

        self.c5 = Conv2D(filters=256, kernel_size=(3, 3), padding='same',
                         activation='relu')
        self.p3 = MaxPool2D(pool_size=(3, 3), strides=2)

        self.flatten = Flatten()
        self.f1 = Dense(2048, activation='relu')
        self.d1 = Dropout(0.5)
        self.f2 = Dense(2048, activation='relu')
        self.d2 = Dropout(0.5)
        self.f3 = Dense(10, activation='softmax')

    def call(self, x):
        x = self.c1(x)
        x = self.b1(x)
        x = self.a1(x)
        x = self.p1(x)

        x = self.c2(x)
        x = self.b2(x)
        x = self.a2(x)
        x = self.p2(x)

        x = self.c3(x)

        x = self.c4(x)

        x = self.c5(x)
        x = self.p3(x)

        x = self.flatten(x)
        x = self.f1(x)
        x = self.d1(x)
        x = self.f2(x)
        x = self.d2(x)
        y = self.f3(x)
        return y


model = AlexNet8()

model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
              metrics=['sparse_categorical_accuracy'])

history = model.fit(x_train, y_train, batch_size=32, epochs=5, validation_data=(x_test, y_test), validation_freq=1)
model.summary()


###############################################    show   ###############################################

# 显示训练集和验证集的acc和loss曲线
acc = history.history['sparse_categorical_accuracy']
val_acc = history.history['val_sparse_categorical_accuracy']
loss = history.history['loss']
val_loss = history.history['val_loss']

plt.subplot(1, 2, 1)
plt.plot(acc, label='Training Accuracy')
plt.plot(val_acc, label='Validation Accuracy')
plt.title('Training and Validation Accuracy')
plt.legend()

plt.subplot(1, 2, 2)
plt.plot(loss, label='Training Loss')
plt.plot(val_loss, label='Validation Loss')
plt.title('Training and Validation Loss')
plt.legend()
plt.show()

训练5个epoch的效果

cifar10_alexnet8.py 立即下载

相关推荐

动手学深度学习(PyTorch实现)(八)–AlexNet模型

AlexNet模型1. AlexNet模型介绍1.1 AlexNet的特点1.2 AlexNet的结构1.3 AlexNet参数数量2. AlexNet的PyTorch实现2.1 导入相应的包2.2 构建AlexNet网络2.3 加载数据集2.4 训练网络 1. AlexNet模型介绍 由于受到计算机性能的影响,虽然LeNet在图像分类中取得了较好的成绩,但是并没有引起很多的关注。 直到2012年,Alex等人提出的AlexNet网络在ImageNet大赛上以远超第二名的成绩夺冠,卷积神经网络乃至深度学习重新引起了广泛的关注。AlexNet首次证明了学习到的特征可以超越⼿⼯设计的特征,从而⼀举

卷积神经网络——Alexnet8网络结构及python实现

简单介绍Alexnet8网络原理

abc1234abcdefg的博客 1296

AlexNet_alexnet_Alexnet网络模型_

alexnet模型搭建,供初学者参考,本人小白,望有错指正

使用AlexNet8网络实现10分类

参考资料: 北京大学, 软微学院, 曹健老师, 《人工智能实践:TensorFlow2.0笔记》 运行环境: python3.7 tensorflow 2.1.0 numpy 1.17.4 matplotlib 3.2.1 AlexNet8的训练参考文章:AlexNet8网络在python下的实现 训练数据集:cifar10 构造网络模型: model = tf.keras.models.Sequential([ # 网络结构 Conv2D(filters=96, kernel_size=(

m0_38022672的博客 748

ADSP-21565的SigmaStudio图形化编程实战:从FW工程改造到音频通道打通

本文详细介绍了如何将ADSP-21569的SigmaStudio图形化编程固件工程改造,以适配ADSP-21565的纯片内SRAM内存架构。通过修改内存映射和链接文件,打通了音频输出通道,并成功利用SigmaStudio进行图形化编程,实现了从白噪声生成到音频输出的完整验证流程。

weixin_29169505的博客 380

App渗透 - 人脸识别登录绕过

一、APP抓包和逆向破解加密算法打开APP是一个登录框抓包后发现参数被加密了使用Jadx脱源码发现,并没有加壳也没有混淆,运气很好根据经验,先搜索Encrypt、Decrypt等关键字,发现在Common.js中有一个encryptData函数定位过去,一套加解密算法都写好了放在这放到浏览器console里面调试,果然没错二、寻找注入点首先测试了一下注入明文:{"userName":"TEST'...

渗透测试研究中心 2825

计算机视觉与深度学习-经典网络解析-AlexNet-[北邮鲁鹏]

AlexNet 是一种卷积神经网络(Convolutional Neural Network,CNN)的架构。它是由Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton提出的,并在2012年的ImageNet大规模视觉识别挑战赛(ILSVRC)中获胜。 AlexNet是推动深度学习在计算机视觉任务中应用的先驱之一

m0_49683806的博客 984

保姆级教程:不用看古早代码,5分钟搞懂泛微ecology9附件存储与接口调用

本文详细解析了泛微ecology9附件存储与接口调用的核心原理,提供从基础概念到实战操作的完整指南。通过拆解文档化附件设计理念、解析RESTful接口参数,并给出Python代码示例,帮助开发者快速掌握附件上传与业务集成的关键技巧,提升二次开发效率。

weixin_28688385的博客 350

AlexNet 网络详解及Tensorflow实现源码

版权声明:本文为博主原创文章,未经博主允许不得转载。 1. 图片数据处理 2. 卷积神经网络 2.1. 卷积层 2.2. 池化层 2.3. 全链层 3. AlexNet 4. 用Tensorflow搭建完整的AlexNet 5. 用AlexNet识别猫狗图片 5.1. 定义分类 5.2. 训练网络 5.3. 验证 1. 图片数据处理 一张图片是由一个个像素组成,每个像素的颜色常常...

weixin_34232744的博客 1235

载波同步技术(一):BPSK的Costas Loop 载波同步

Author:McCrocodile 2010/11/04          载波的提取在相干解调中往往比较重要,根据信号中是否包含载频分量,载波同步一般也可以分为两种方法。包含载频分量的可以采用窄带滤波或者基本的锁相环环路来实现,不包含的则比较麻烦需要采用特殊的环路实现载波的同步。这里介绍的BPSK的载波恢复就属于后面一种。 对于不包含载频分量的信号载波同步一般有:同相-正交环(就是常说的Costas环)、判决反馈环(几乎可以适用所有调制方式)、同相-正交环衍生环(QPSK松尾环、N相同相-正交环)。

McCrocodile Blog 1万+

CTP高频Tick数据:五档期货Level2深度解析20241224

高频Tick五档期货Level2数据,作为一种先进的金融市场分析工具,以其一秒四次的高频更新,为投资者揭示了市场的微观结构。本文将深入探讨这一数据如何帮助投资者洞察市场动态,优化交易策略,实现投资收益的最大化。

level2Tick的博客 1218

测试tensorflow alexnet

alexnet源码: https://github.com/kratzert/finetune_alexnet_with_tensorflow 上述代码无运行错误,但是无法给出正确的识别结果,解决方案如下: import os import cv2 import numpy as np import tensorflow as tf import matplotlib.pyplot as ...

要努力成为很厉害很厉害的人哦 261

python爬虫豆瓣读书top250+数据清洗+数据库+Java后端开发+Echarts数据可视化(二)

之前的博客已经写了python爬取豆瓣读书top250的相关信息,接下来继续看如何清洗数据。 如果有没看懂的或是不了解上一部分说的是什么内容的,请看https://blog.youkuaiyun.com/qq_45804925/article/details/112848887 现在开始具体内容的复习: 1. 豆瓣读书top250信息预处理 #数据清洗 import pandas as pd import re import time # 先读取数据文件 data = pd.read_csv('E:/Class/商.

qq_45804925的博客 4442

【源码解读】tensorflow slim AlexNet

代码来源:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/slim/python/slim/nets/alexnet.py

puchapu的博客 326

Chamfer Loss

ChamferLoss是一种常用于3D点云(pointcloud)处理的损失函数,特别是在点云生成和对齐任务中。它的目的是度量两个点集之间的相似度,特别是在点云重建、配准或生成等任务中,常用于优化模型使得生成的点云更接近真实的点云。

夜空中明亮的星的专栏 455

YOLOv10改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

如何寻找创新点?为什么要使用这个模块?如何才能提升模型的精度?这是贯穿我们研究始终的问题。创新点在这个专栏中我已经整理好了,这已经省去了大部分时间,但是当我们使用这些新的模块去优化已有的模型,如何才能提升模型的精度,才是我们要达到的最终目标。当然我们可以使用传统的A+B+C的方法去堆积模块,然后是进行大量的实验去排列组合以实现最终的精度提升,这无可厚非。

Limiiiing的博客 1万+

Tensorflow实现猫狗大战AlexNet

上一篇博客利用TensorFlow实现了VGG16,其中在处理数据的时候将图片数据集转化为TensorFlow专用格式。但是对于某些容量非常庞大、数据量非常多的数据集来说,将其转换为TFRecords格式是一个非常浩大的工程,而且往往由于原始的数据集和转换后的数据集容量过大,使得加载和读取消耗更多的资源,从而引起一些列的问题。 今天介绍另一种数据处理方式:图片地址数据集转换为TensorFlow专...

The Thinker 1396

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

AlexNet 介绍及Tensorflow实现源码

AlexNet 介绍及Tensorflow实现源码 AlexNet是神经网络之父Hinton的学生Alex Krizhevsky开发完成,它总共有8层,其中有5个卷积层,3个全链层。 网络结构介绍 介绍内容参考链接 第一个卷积层 输入的图片大小为:224*224*3 第一个卷积层为:11*11*96即尺寸为11*11,有96个卷积核,步长为4,卷积层后跟ReLU,因此输出的尺寸为 ...

weixin_41469272的博客 1681

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

源码级分析TensorFlow之AlexNet,图像分类

""" AlexNet(Alex Krizhevsky,ILSVRC2012冠军)适合做图像分类 层自左向右、自上向下读取,关联层分为一组,高度、宽度减小,深度增加 深度增加减少网络计算量 训练模型数据集 Stanford计算机视觉站点Stanford Dogs http://vision.stanford.edu/aditya86/ImageNetDogs/ 数据下载解压到模型代码同一路径...

ynsshzwxhzyx的博客 2516

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

TensorFlow AlexNet图像分类实践教程

TensorFlow AlexNet图像分类实践教程 项目介绍 本项目基于TensorFlow实现了一个AlexNet模型,用于图像分类任务。AlexNet是深度学习历史上的一座里程碑,由Alex Krizhevsky等人在2012年提出,并在ImageNet竞赛中取得优异成绩。该项目【tensorflow_alexnet_classify】提供了一个简洁的实现方式,帮助开发者快速上手并理解Ale...

gitblog_00290的博客 465

Mermaid Live Editor:三行文字生成一张图的免费在线流程图工具

Mermaid Live Editor 是一款免费在线流程图编辑器。敲入三行文字,就能得到流程图、时序图或甘特图,整张图还能压缩进一条链接里,不用安装、不用注册,服务器上不留任何数据。 ## 三分钟粘出第一张流程图 这个工具没有配置页,左侧代码区打开即写,想点错都没地方点。把下面这段粘进去就能跑: ``` graph TD A[创建任务] --> B{评审通过?} B -->

gitblog_00914的博客 516

Ubuntu服务器上搭建Tensorflow版本AlexNet环境

Ubuntu服务器上搭建Tensorflow版本AlexNet环境 本篇博客记录了笔者用Ubuntu服务器搭建Tensorflow版本AlexNet环境并进行自己数据集训练的过程,主要讲述了环境搭建步骤和遇到的一些问题,希望对读者有所帮助。 一、AlexNet源码下载 Tensorflow版本源码的github网址为:https://github.com/kratzert/finetune_alexnet_with_tensorflow,输入以下命令下载: $ git clone https://githu

weixin_43530173的博客 411

AlexNet源码实现(基于tensorflow2.0)

AlexNet模型架构 整个实现过程分为模型构建、训练模型和测试模型。 AlexNet_model.py import tensorflow.keras.layers as layers from tensorflow.keras import Sequential def build_model(): #网络层的搭建 model=Sequential() model.add(layers.Conv2D(96,kernel_size=11,strides=4,activation

博客 1118
上一篇: LeNet5详细原理(含tensorflow版源码)
下一篇: InceptionNet10详细原理(含tensorflow版源码)
爱笑的男孩。
博客等级 码龄5年 1499粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱笑的男孩。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值