TensorFlow实现经典深度学习网络(1):TensorFlow实现AlexNet

本文详细介绍了如何使用TensorFlow实现经典的AlexNet深度学习网络,该网络由Alex Krizhevsky提出,是2012年ImageNet比赛的冠军。AlexNet是LeNet的深化版本,包含8个权重层,5个卷积层和3个全连接层,使用ReLU激活函数和Dropout技术防止过拟合。此外,文章还提到了GPU卷积运算的效率,并提供了搭建AlexNet的代码示例。
摘要由CSDN通过智能技术生成

TensorFlow实现经典深度学习网络(1):TensorFlow实现AlexNet


    本文介绍的经典卷积神经网络为AlexNet,它是由Hinton的学生Alex Krizhevsky提出。AlexNet可以说是在2012年被发表的一个非常经典之作,它可以算是LeNet的一种更深更宽的版本,并在当年取得了ImageNet最好成绩,点燃了深度学习这把火。也是在那年之后,更多的更深的神经网路被提出,比如优秀的VGGNet、Google InceptionNet、和ResNet。AlexNet将LeNet的思想发扬光大,把CNN的基本原理应用到了很深很宽的网络中。AlexNet可以说是神经网络在低谷期的第一次发声,确立来深度学习在计算机视觉的统治地位,碾压其他传统的hand-craft 特征方法,使得计算机视觉从业者从繁重的特征工程中解脱出来,转向思考能够从数据中自动提取需要的特征,做到数据驱动。


        

         AlexNet共包含8个权重层,其中前5层为卷积层,后3层为全连接层。如上图所示,第1个及第2个卷积层后连有LRN层,不过此后的网络也证明LRN并非CNN中必须包含的层,甚至有些网络加入LRN后效果反而降低(读者可自行验证)。两个LRN层及最后层卷积层后都跟有最大池化层,并且各个层均连有ReLU激活函数。全连接层后使用了Dropout,能够随机忽略一部分神经单元,从而解决过拟合。

         AlexNet主要用到的新技术包括:

        (1)训练出当前最大规模的卷积神经网络,此前LeNet-5网络仅为3个卷积层及1个全连接层;

        (2)成功运用诸多Trick,如Dropout、ReLU、Data Augmentation、Maxpooling等解决深层神经网络存在的问题,使得该网络体现出优秀的性能

        (3)实现高效的GPU卷积运算结构

        因使用ImageNet数据集非常耗时,因此本文会对完整的AlexNet网络进行速度测试。若读者感兴趣,可自行下载ImageNet数据集进行训练测试。

        在准备工作就绪后,我们就可以搭建AlexNet网络。以下代码是本人根据自己的理解整理而成,并亲自验证,代码中标有自己理解所得的注释,若有错误请指正。

# -*- coding: utf-8 -*-
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

# 导入常用库,载入TensorFlow
from datetime import datetime
import math
import time
import tensorflow as tf

# 设置参数
batch_size = 32
num_batches &#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值