经典卷积神经网络LeNet-5模型

本文聚焦于经典卷积神经网络LeNet-5,详细介绍了其7层结构:卷积-池化-卷积-池化-全连接-全连接-输出层,并提供了LeNet-5的代码实现,包括lenet_inference.py、lenet_train.py和lenet_eval.py三个部分,所有程序已成功调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经典的卷积神经网络模型有1998年的LeNet-5模型,2012年的AlexNet模型,2014年的VGG模型,2014年的GoogleNet模型和2015年的ResNet模型。
本文主要讲述经典LeNet-5模型,此模型一共有7层,结构如下图所示:
这里写图片描述
7层结构分别是:
卷积层-池化层-卷积层-池化层-全连接层-全连接层-全链接输出层
以下是LeNet-5模型的代码,在神经网络代码之上做的修改即可实现,代码如下。。。

此部分为LeNet-5模型中的lenet_inference.py代码部分,把神经网络的结构给改了,加入了卷积层和池化层。

# -*- coding: utf-8 -*-
"""
Created on Mon Jul 10 11:36:35 2017

@author: cxl
"""

import tensorflow as tf
#INPUT_NODE = 784
#OUTPUT_NODE = 10
IMAGE_SIZE = 28
NUM_CHANNELS = 1
NUM_LABELS = 10

CONV1_DEEP = 32
CONV1_SIZE = 5

CONV2_DEEP = 64
CONV2_SIZE = 5

FC_SIZE = 512



def inference(input_tensor,train,regularizer):
    with tf.variable_scope('layer1-conv1'):
        conv1_weights =tf.get_variable("weight",[CONV1_SIZE,CONV1_SIZE,
            NUM_CHANNELS,CONV1_DEEP],
            initializer = tf.truncated_normal_initializer(stddev = 0.1))
        conv1_biases = tf.get_variable("bias",[CONV1_DEEP],
            initializer = tf.constant_initializer(0.0))
        conv1 = tf.nn.conv2d(input_tensor,conv1_weights,strides = [1,1,1,1],
            padding = "SAME")
        relu1=tf.nn.relu(tf.nn.bias_add(conv1,conv1_biases))

        with tf.name_scope('layer2-pool1'):
            pool1 = tf.nn.max_pool(relu1,ksize = [1,2,2,1],strides=[1,2,2,1],
                padding = 'SAME')


    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值