Lenet-5卷积神经网络结构详解(一)——原理解析

本文详细介绍了经典的Lenet-5卷积神经网络,包括其起源、网络结构、训练流程和核心组件,如卷积层、激活层、池化层、梯度下降及损失函数。通过对Minst数据集的应用,解析了如何使用numpy从底层实现Lenet-5,并介绍了Softmax细节与负对数似然损失函数,为理解深度学习的卷积神经网络提供了基础。
摘要由CSDN通过智能技术生成

Lenet-5卷积神经网络结构详解(一)——原理解析

前言

本系列博文将阐释深度学习网络Lenet-5的具体原理,网络结构及其代码实现。本文不适用任何高级框架,只使用numpy从底层实现lenet-5。本系列博文共计3篇,本文是第一篇。系列中代码参考地址:
Click Here.
Yes Right Here

网络综述

Lenet-5 神经网络出自论文 Gradient-Based Learning Applied to Document Recognition,是一种用于手写体字符识别的非常高效的卷积神经网络。Lenet-5 神经网络一共有 7 层,每层包含不同数量的训练参数。将一批数据输入进神经网络,经过卷积,激活,池化,全连接和Softmax 回归等操作,最终返回一个概率数组,从而达到识别图片的目的。

配置环境

python 3.7.3

numpy 1.16.4

数据集

在我们直视整个网络前,我们先来看一下网络要处理的数据集。

由于网络处理手写字符比较高效,我们选用知名度很高的Minst数据集,下载地址:download minst dataset

上述的下载网址中说明了数据集的构成:60000张手写体数字图片,每张图片的大小为28x28。下载网址中详细说明了压缩文档的构成,我们可以利用这些信息编写函数将数据集下载下来。

下载

我们编写load_data.py实现从网址下载函数的功能。需要的模块有gizp 和 pickle,没有的同学请自行pip。

import gzip
import pickle
import numpy as np 

file_name = [
    ["x_train_set","train-images-idx3-ubyte.gz"],
    ["x_test_set","t10k-images-idx3-ubyte.gz"],
    ["y_train_set","train-labels-idx1-ubyte.gz"],
    ["y_test_set","t10k-labels-idx1-ubyte.gz"]
] # 文件名,下载地址: http://yann.lecun.com/exdb/mnist/

"""
	存储数据到dataset_minst.pkl文件夹。
"""
def save_dataset ():
    dataset ={
   }
    for name in file_name[:2]:
        with gzip.open(name[1],"rb") as f:
            dataset[name[0]] = np.frombuffer(f.read(),np.uint8,offset = 16).reshape(-1,28*28)# 为什么要offset16?因为前16个字符是
    for name in file_name[-2:
  • 12
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值