深度学习系列 自己手写一个卷积神经网络
- 格式:doc
- 大小:13.95 KB
- 文档页数:3
深度学习中的卷积神经网络与循环神经网络深度学习是目前人工智能领域最为炙手可热的技术之一,它在图像识别、语音识别、自然语言处理等领域都取得了显著的成就。
而在深度学习领域中,卷积神经网络和循环神经网络是两个重要的模型,它们在不同的任务中展现出了卓越的性能。
本文将重点介绍卷积神经网络和循环神经网络的原理、结构和应用,旨在帮助读者更好地理解这两种神经网络模型。
一、卷积神经网络(Convolutional Neural Network,CNN)1.1原理卷积神经网络是受到生物视觉系统的启发而提出的一种深度学习模型,它模拟了人类视觉皮层的工作原理。
在卷积神经网络中,包含了卷积层、池化层和全连接层等组件。
卷积层是卷积神经网络的核心组件,它通过卷积操作从输入数据中提取特征。
卷积操作可以有效地减少参数数量,并且能够捕捉数据中的局部特征。
此外,卷积操作还具有平移不变性,能够识别特征在不同位置的模式。
池化层通常紧跟在卷积层后面,它的作用是降低特征图的尺寸,并减少模型对位置的敏感度。
常见的池化操作有最大池化和平均池化,它们分别选择特征图中的最大值和平均值作为输出。
全连接层是卷积神经网络中的最后一层,它将特征图展平成一维向量,并通过全连接操作将提取的特征进行分类或回归。
1.2结构卷积神经网络通常由多个卷积层、池化层和全连接层构成,其中卷积层和池化层交替出现,而全连接层通常出现在网络的最后一部分。
卷积神经网络的结构可以根据具体的任务进行调整,以达到更好的性能。
1.3应用卷积神经网络在图像识别、物体检测、人脸识别等领域取得了巨大的成功。
以ImageNet图像识别比赛为例,卷积神经网络模型始终是各种比赛的最佳选择,它在复杂的图像数据上展现了出色的识别性能。
此外,卷积神经网络还被广泛应用于医学影像识别、自动驾驶、智能安防等领域。
二、循环神经网络(Recurrent Neural Network,RNN)2.1原理循环神经网络是一种能够处理时序数据的神经网络模型,它具有记忆能力,能够对序列数据进行建模。
基于深度学习的手写数字识别系统设计毕业设计基于深度学习的手写数字识别系统设计一、引言在信息时代的今天,数字识别技术在各个领域都有广泛的应用,尤其是在金融、安防、物流等行业中,数字识别系统扮演着重要的角色。
然而,传统的手写数字识别方法在复杂场景下往往效果不佳。
为了提高数字识别的准确性和稳定性,本毕业设计将基于深度学习技术设计一个手写数字识别系统。
二、系统架构手写数字识别系统主要由以下几个模块组成:数据集准备、特征提取、模型训练和模型评估。
下面将对每个模块进行详细介绍。
2.1 数据集准备为了构建一个准确的手写数字识别系统,我们需要一个包含大量手写数字样本的数据集。
本设计将使用MNIST数据集,该数据集包含60000个训练样本和10000个测试样本,每个样本为28x28像素的灰度图像。
2.2 特征提取在深度学习中,卷积神经网络(Convolutional Neural Network,CNN)是一种有效的特征提取方法。
本设计将使用一个经典的CNN架构,包括卷积层、池化层和全连接层。
卷积层用于提取图像的局部特征,池化层用于降低特征的维度,全连接层用于将提取到的特征与标签进行映射。
2.3 模型训练在特征提取模块构建完成后,我们需要对模型进行训练。
本设计将使用反向传播算法(Backpropagation,BP)来更新模型的参数,以减小模型的预测误差。
同时,为了避免过拟合问题,我们将采用Batch Normalization和Dropout等技术进行模型的正则化。
2.4 模型评估为了评估手写数字识别系统的性能,我们将使用测试集对模型进行评估。
评估指标包括准确率、精确率、召回率和F1值等。
准确率指模型正确预测样本的比例,精确率指模型正确预测为正样本的比例,召回率指模型正确预测出正样本的比例,F1值综合考虑了精确率和召回率。
三、实验与结果为了验证基于深度学习的手写数字识别系统的效果,我们使用Python编程语言和TensorFlow深度学习框架进行实验。
深度卷积神经网络深度卷积神经网络(DCNN)是一种用于图像处理和模式识别的重要技术。
它在图像分类、目标检测和语义分割等任务中取得了显著的成功。
本文将介绍深度卷积神经网络的基本原理、架构和训练方法。
深度卷积神经网络是基于神经网络的一种特殊结构,主要由多层卷积层、池化层和全连接层组成。
其中,卷积层通过一系列卷积核对输入进行特征提取,池化层用于降低特征图的空间尺寸,全连接层则用于将特征图映射到最终的输出类别或结果。
首先,我们来看一下卷积操作。
卷积操作是深度卷积神经网络中最重要的组成部分之一。
它通过卷积核与输入特征图进行卷积运算,从而提取出特征信息。
卷积操作可以有效地减少神经网络中的参数数量,从而降低计算复杂度,并且能够保留输入数据的空间结构。
在深度卷积神经网络中,通常会使用多个卷积层进行特征提取。
每个卷积层可以使用不同的卷积核进行特征提取,从而得到不同尺寸和形状的特征图。
随着网络的深度增加,卷积层逐渐增加,可以提取更加抽象和高级的特征。
另外一个重要的组件是池化层。
池化层用于对特征图进行下采样,降低特征图的空间尺寸。
常见的池化操作包括最大池化和平均池化。
池化操作可以减少特征图的大小,减少计算量,并且可以提升模型的鲁棒性和泛化性能。
在深度卷积神经网络的末尾,通常会添加全连接层。
全连接层起到将特征图映射到最终输出类别或结果的作用。
全连接层通常是一个多层感知机,其输出为最终的分类结果。
除了上述基本组件外,深度卷积神经网络还包括正则化和激活函数等组件。
正则化用于防止过拟合现象的发生,包括L1正则化和L2正则化等方法。
激活函数用于引入非线性,从而增加网络的表达能力。
常见的激活函数包括Sigmoid函数、ReLU函数等。
深度卷积神经网络的训练通常使用梯度下降的方法。
先通过前向传播计算出网络的输出,然后通过反向传播计算网络中的梯度。
通过调整网络中的参数,使得网络输出与真实标签尽可能地接近。
为了提高训练速度和性能,通常会使用一些技巧,如批量归一化、dropout等。
基于卷积神经网络的手写识别技术研究随着人工智能的不断发展,越来越多的技术在不断涌现。
其中,手写识别技术可以说是相对成熟的一种,广泛应用于个人电子设备,如智能手机、手写笔记本等。
但是,想要实现高精度的手写识别仍然存在困难。
近年来,卷积神经网络成为了手写识别领域应用最广泛的一种技术,取得了许多令人瞩目的成果。
一、手写识别技术的研究背景手写识别技术源于对手写字符的自动识别研究。
一早期的手写识别技术采用的是模板匹配方法,即通过将手写字符与已知模板进行匹配,以确定其所代表的字符。
但是,由于手写字符具有较大的方差性和模糊性,模板匹配方法的识别率较低,无法满足实际应用需求。
卷积神经网络(Convolutional Neural Network)是一种深度学习模型,其在图像处理任务中有着出色的表现,成为了手写识别技术中的佼佼者。
卷积神经网络是由若干个卷积层和池化层组成的神经网络,其特点是局部感知能力强,并且具有对于空间特征的提取能力。
因此,卷积神经网络非常适合与手写识别任务相结合。
二、手写识别技术的基本原理卷积神经网络的训练过程是一个不断调整权重值的过程。
在手写识别任务中,卷积神经网络输入为一张手写字符图片,输出为字符的分类结果。
其具体过程如下:1. 图片的预处理对输入图片进行预处理,主要包括灰度化、图像大小处理等操作。
2. 卷积和池化操作将处理后的图片输入到卷积层和池化层中。
卷积操作会对图片进行多次卷积操作,提取出图片的边缘特征、纹理等信息,生成一个卷积后的特征图。
池化操作则对卷积后的特征图进行下采样,进一步缩小特征图的规模,并保留特征。
3. 全连接层将卷积和池化后的特征图输入到全连接层中。
全连接层则将特征图转换为一维矩阵,再输入到神经元层进行运算,最终得到分类结果。
4. 损失函数的计算手写识别任务的目标是将输入的手写字符进行分类,因此需要设计相应的损失函数来评估预测结果和真实结果之间的差异。
5. 反向传播算法反向传播算法是在卷积神经网络中用于求解权重和偏置的参数。
第1篇一、实验背景随着计算机技术的飞速发展,人工智能领域取得了显著的成果。
深度学习作为人工智能的一个重要分支,在图像识别、语音识别、自然语言处理等方面取得了突破性进展。
手写数字识别作为计算机视觉领域的一个重要任务,具有广泛的应用前景。
本实验旨在利用深度学习技术实现手写数字识别,提高识别准确率。
二、实验原理1. 数据集介绍本实验采用MNIST数据集,该数据集包含60000个训练样本和10000个测试样本,每个样本为28x28像素的手写数字图像,数字范围从0到9。
2. 模型结构本实验采用卷积神经网络(CNN)进行手写数字识别,模型结构如下:(1)输入层:接收28x28像素的手写数字图像。
(2)卷积层1:使用32个3x3卷积核,步长为1,激活函数为ReLU。
(3)池化层1:使用2x2的最大池化,步长为2。
(4)卷积层2:使用64个3x3卷积核,步长为1,激活函数为ReLU。
(5)池化层2:使用2x2的最大池化,步长为2。
(6)卷积层3:使用128个3x3卷积核,步长为1,激活函数为ReLU。
(7)池化层3:使用2x2的最大池化,步长为2。
(8)全连接层:使用1024个神经元,激活函数为ReLU。
(9)输出层:使用10个神经元,表示0到9的数字,激活函数为softmax。
3. 损失函数与优化器本实验采用交叉熵损失函数(Cross Entropy Loss)作为损失函数,使用Adam优化器进行参数优化。
三、实验步骤1. 数据预处理(1)将MNIST数据集分为训练集和测试集。
(2)将图像数据归一化到[0,1]区间。
2. 模型训练(1)使用训练集对模型进行训练。
(2)使用测试集评估模型性能。
3. 模型优化(1)调整学习率、批大小等超参数。
(2)优化模型结构,提高识别准确率。
四、实验结果与分析1. 模型性能评估(1)准确率:模型在测试集上的准确率为98.5%。
(2)召回率:模型在测试集上的召回率为98.2%。
(3)F1值:模型在测试集上的F1值为98.4%。
如何利用深度学习技术进行手写体识别深度学习技术在近年来的快速发展中,为手写体识别提供了强大的工具和算法。
手写体识别是一项重要的任务,可以应用于人工智能领域的众多应用中,如自动文本转换、图像检索和语音识别等。
本文将为您介绍如何利用深度学习技术进行手写体识别。
一、手写体识别概述手写体识别是指将人类书写的字符或文本转化为可供计算机处理的数字形式。
这一任务的挑战在于每个人的手写风格和书写能力各不相同,使得对于字符辨识非常困难。
而深度学习技术则通过构建复杂的神经网络模型,能够从海量数据中提取特征并进行准确分类。
二、数据预处理在进行手写体识别之前,首先需要对数据进行预处理。
预处理包括以下步骤:1. 数据收集:收集大量具有标签的手写字样本作为训练集,并保证样本覆盖各种不同的书写风格。
2. 数据清洗:清洗训练集数据以去除噪声和异常值,确保模型学习到有效信息。
3. 数据处理:将手写字样本转化为合适的格式,如转换为灰度图像或特征向量,以便于深度学习模型进行处理和学习。
三、构建深度学习模型通过合适的深度学习模型,可以提高手写体识别的准确性。
以下是一些常见的深度学习模型:1. 卷积神经网络(CNN):由于图像具有空间结构的特点,CNN在图像分类任务中表现出色。
对于手写体识别,可以使用卷积层和池化层来提取特征,并通过全连接层将提取到的特征映射到类别上。
2. 循环神经网络(RNN):RNN主要用于序列数据的处理,在手写体识别中可用于连续字符之间的预测。
通过将时间步骤作为输入,并在隐藏状态中保存先前时刻的信息,RNN可以捕捉到字符间的上下文关系。
3. 长短时记忆网络(LSTM):LSTM是一种RNN变体, 它能够更好地捕捉到长期依赖关系。
在手写体识别中, LSTM可以帮助模型理解笔画之间存在复杂关联性, 提供更高水平的准确性。
四、模型训练与优化在构建好深度学习模型之后,需要进行数据集的划分,并进行模型的训练和优化。
1. 数据集划分:将手写体数据集划分为训练集、验证集和测试集。
基于深度学习的手写数字识别手写数字是我们日常生活中经常遇到的问题,比如填写表格、签字等。
然而,在数字识别领域,由于人类和机器之间认知方式的不同,机器往往难以准确识别手写数字。
因此,在多项技术的辅助下,深度学习在手写数字识别中发挥了巨大的作用。
一、手写数字的难点手写数字识别从理论上讲,似乎并不是一件十分困难的事情。
但实际上,由于手写数字的不规则性,包括书写风格、大小、位置偏移和笔画粗细等等因素,机器需要识别的信息非常复杂。
而且,在机器的识别过程中,很容易受到其他干扰信息的影响,导致误判或漏判的情况发生。
二、深度学习在识别手写数字中的应用深度学习是机器学习的一种,它主要通过构建多层神经网络,让机器学会更复杂的知识和表达形式,进而从大量数据中提取符合人类认知方式的特征和规律。
在手写数字识别中,深度学习有以下几种应用方式:1、基于卷积神经网络的手写数字识别卷积神经网络是深度学习中应用最为广泛的网络结构,它主要利用卷积运算和池化运算实现特征提取。
在手写数字识别中,我们可以采用卷积神经网络对输入的图片进行特征提取和分类,并且根据训练数据不断更新网络参数,提高网络的准确率。
2、基于循环神经网络的手写数字识别循环神经网络是一种具备记忆能力的神经网络,它主要利用循环连接和门控单元,实现对序列数据的处理。
在手写数字识别中,我们可以将手写数字转换为序列数据,利用循环神经网络学习其中的规律和特征,并实现分类识别。
3、基于生成对抗网络的手写数字生成生成对抗网络是深度学习中一种常用的生成模型,它主要利用生成器和判别器两个网络实现,生成模型学习生成数据,判别模型学习判别真假。
在手写数字识别中,我们可以利用生成对抗网络生成大量的手写数字图像,并利用这些图像来训练深度学习模型,提高手写数字识别的准确率。
三、现有应用及局限目前,基于深度学习的手写数字识别已经广泛应用于各类应用场景,比如手写签名识别、手写邮政编码识别等。
但是,在珂以应用中,由于深度学习需要大量的计算资源和数据集,导致其运行时间和计算成本较高。
基于卷积神经网络的手写体数字识别(1)问题的提出图14.1 手写识别输入方法手写识别能够使用户按照最自然、最方便的输入方式进行文字输入,易学易用,可取代键盘或者鼠标(图14.1)。
用于手写输入的设备有许多种,比如电磁感应手写板、压感式手写板、触摸屏、触控板、超声波笔等。
把要输入的汉字写在一块名为书写板的设备上(实际上是一种数字化仪,现在有的与屏幕结合起来,可以显示笔迹)。
这种设备将笔尖走过的轨迹按时间采样后发送到计算机中,由计算机软件自动完成识别,并用机器内部的方式保存、显示。
(2)任务与目标①了解卷积神经网络(CNN)的基本原理、LeNet-5相关算法和应用框架;②掌握运用人工智能开源硬件及Caffe库设计智能应用系统的方法,掌握Python语言的编程方法;③应用人工智能开源硬件和相关算法设计一个基于CNN的手写体数字识别系统,实现对手写体数字0~9的识别;④针对生活应用场景,进一步开展创意设计,设计具有实用价值的手写体数字识别应用系统。
(3)知识准备1)卷积和子采样去卷积一个输入的图像(第一阶段是卷积过程就是用一个可训练的滤波器fx,得到卷积层输入的图像,后面的阶段就是卷积特征map),然后加一个偏置bx。
Cx子采样过程是指,邻域4个像素求和变为一个像素,然后通过标量W加权,再增加偏置b,然后通过一个Sigmoid激活函数,产生一个缩小1/4的特征映射。
图Sx+1如图14.2所示为卷积和子采样过程。
图14.2 卷积和子采样2)使用传统机器学习与深度学习方法的比较使用机器学习算法进行分类包含训练和预测两个阶段(图14.3):训练阶段,使用包含图像及其相应标签的数据集来训练机器学习算法;预测阶段,利用训练好的模型进行预测。
图像分类是经典的人工智能方法,采用机器学习的方法,需要先进行模型参数训练,训练阶段包括两个主要步骤:①特征提取。
在这一阶段,利用领域知识来提取机器学习算法将使用的新特征。
HoG和SIFT是图像分类中常使用的参数。
深度卷积神经网络的原理与应用深度卷积神经网络(Deep Convolutional Neural Network, DCNN)是一种在计算机视觉领域取得巨大成功的深度学习模型。
它通过模拟人脑视觉系统的工作原理,能够对图像进行高效的特征提取和分类。
本文将介绍DCNN的原理、结构和应用,并探讨其在计算机视觉领域的前沿研究。
一、DCNN的原理DCNN的核心思想是模拟人脑视觉系统中的神经元活动。
人脑视觉系统通过多层次的神经元网络对图像进行处理,从低级特征(如边缘、纹理)逐渐提取到高级特征(如形状、物体)。
DCNN也采用了类似的层次结构,通过多层卷积和池化层对图像进行特征提取,再通过全连接层进行分类。
具体来说,DCNN的核心组件是卷积层。
卷积层通过一系列的卷积核对输入图像进行卷积操作,提取图像的局部特征。
每个卷积核对应一个特定的特征,如边缘、纹理等。
卷积操作可以有效地减少参数数量,提高计算效率。
此外,卷积层还通过非线性激活函数(如ReLU)引入非线性,增加模型的表达能力。
为了减小特征图的尺寸,DCNN还引入了池化层。
池化层通过对特征图进行降采样,保留重要的特征同时减小计算量。
常用的池化操作有最大池化和平均池化。
通过多次卷积和池化操作,DCNN可以逐渐提取出图像的高级特征。
二、DCNN的结构DCNN的结构通常由多个卷积层、池化层和全连接层组成。
其中,卷积层和池化层用于特征提取,全连接层用于分类。
除了这些基本组件,DCNN还可以引入一些额外的结构来提高性能。
一种常见的结构是残差连接(Residual Connection)。
残差连接通过跳过卷积层的部分输出,将输入直接与输出相加,从而解决了深层网络训练困难的问题。
这种结构能够有效地减少梯度消失和梯度爆炸,加速网络收敛。
另一种常见的结构是注意力机制(Attention Mechanism)。
注意力机制通过给予不同特征不同的权重,使网络能够更加关注重要的特征。
这种结构在处理复杂场景或多目标识别时能够提升模型的性能。
深度学习技术中的卷积神经网络结构和特点解析卷积神经网络(Convolutional Neural Network,CNN)是当今深度学习技术中最重要的模型之一。
它被广泛应用于计算机视觉、自然语言处理、语音识别等领域。
本文将解析卷积神经网络的结构和特点,帮助读者更好地理解和运用这一强大的深度学习工具。
一、卷积神经网络的结构卷积神经网络由多层神经网络组成,每一层由多个神经元组成。
其中,最重要的几层是卷积层(Convolutional Layer)、池化层(Pooling Layer)和全连接层(Fully Connected Layer)。
1. 卷积层:卷积层是卷积神经网络的核心层之一。
它通过使用一组可学习的滤波器(或称为卷积核)对输入数据进行卷积操作,并生成特征图(Feature Map)。
卷积操作通过在输入数据中滑动卷积核,并在每个位置上执行点乘运算,得到对应位置的特征。
卷积层的特点在于共享权重。
这意味着在同一层的不同位置使用的卷积核是相同的,因此卷积层的参数量大大减少,使得网络更加简化。
2. 池化层:池化层用于对卷积层的特征进行降维和抽象。
它通过固定大小的滑动窗口在特征图上进行采样,并将采样结果汇聚为一个值。
常见的池化方法有最大池化和平均池化。
池化层能够减少参数数量,降低过拟合的风险,同时也增强特征的不变性和鲁棒性,使得网络对于输入数据的微小变化具有更好的鲁棒性。
3. 全连接层:全连接层是卷积神经网络的最后一层,也是输出层。
它将前面的隐藏层与最终的分类器相连,将特征转化为概率或标签。
全连接层的每个神经元与前一层中的所有神经元都有连接关系。
全连接层的作用是将抽取到的特征与实际标签进行匹配,从而进行最终的分类判断。
二、卷积神经网络的特点1. 局部感知性:卷积神经网络通过卷积操作对输入数据进行特征提取,并利用池化操作定位和提取最显著的特征。
这种局部感知性使得网络对于局部信息具有更好的提取和理解能力。
深度学习系列自己手写一个卷积神经网络
首先我们来看一个最简单的卷积神经网络:1.输入层---->卷积层以上一节的例子为例,输入是一个4*4 的image,经过两个2*2的卷积核进行卷积运算后,变成两个3*3的feature_map以卷积核filter1为例(stride = 1 ):计算第一个卷积层神经元o11的输入:神经元o11的输出:(此处使用Relu 激活函数)其他神经元计算方式相同2.卷积层---->池化层计
算池化层m11 的输入(取窗口为2 * 2),池化层没有激活函
数3.池化层---->全连接层池化层的输出到flatten层把所有元素“拍平”,然后到全连接层。
4.全连接层---->输出层全连接层到输出层就是正常的神经元与神经元之间的邻接相连,通过softmax函数计算后输出到output,得到不同类别的概率值,输出概率值最大的即为该图片的类别。
卷积神经网络的反向传播传统的神经网络是全连接形式的,如果进行反向传播,只需要由下一层对前一层不断的求偏导,即求链式偏导就可以求出每一层的误差敏感项,然后求出权重和偏置项的梯度,即可更新权重。
而卷积神经网络有两个特殊的层:卷积层和池化层。
池化层输出时不需要经过激活函数,是一个滑动窗口的最大值,一个常数,那么它的偏导是1。
池化层相当于对上层图片做了一个压缩,这个反向求误差敏感项时与传统的反向传播方式不同。
从卷积后的feature_map反向传播到
前一层时,由于前向传播时是通过卷积核做卷积运算得到的feature_map,所以反向传播与传统的也不一样,需要更新卷积核的参数。
下面我们介绍一下池化层和卷积层是如何做反向传播的。
在介绍之前,首先回顾一下传统的反向传播方法:卷积层的反向传播由前向传播可得:首先计算输入层的误差项δ11:观察一下上面几个式子的规律,归纳一下,可以得到如下表达式:此时我们的误差敏感矩阵就求完了,得到误差敏感矩阵后,即可求权重的梯度。
推论出权重的梯度:误差项的梯度:可以看出,偏置项的偏导等于这一层所有误差敏感项之和。
得到了权重和偏置项的梯度后,就可以根据梯度下降法更新权重和梯度了。
池化层的反向传播池化层的反向传播就比较好求了,看着下面的图,左边是上一层的输出,也就是卷积层的输出feature_map,右边是池化层的输入,还是先根据前向传播,把式子都写出来,方便计算:这样就求出了池化层的误差敏感项矩阵。
同理可以求出每个神经元的梯度并更新权重。
手写一个卷积神经网络1.定义一个卷积层首先我们通过ConvLayer来实现一个卷积层,定义卷积层的超参数其中calculate_output_size用来计算通过卷积运算后输出的feature_map大小2.构造一个激活函数此处用的是RELU激活函数,因此我们在activators.py里定义,forward是前向计算,backforward是计算公式的导数:其他常见的激活函数我们也可以放到activators里,如sigmoid
函数,我们可以做如下定义:如果我们需要自动以其他的激活函数,都可以在activator.py定义一个类即可。
3.定义一个类,保存卷积层的参数和梯度4.卷积层的前向传播1).获取卷积区域2).进行卷积运算3).增加zero_padding4).进行前向传播其中element_wise_op函数是将每个组的元素对应相乘5.卷积层的反向传播1).将误差传递到上一层2).保存传递到上一层的sensitivity map的数组3).计算代码梯度4).按照梯度下降法更新参数6.MaxPooling层的训练1).定义MaxPooling类2).前向传播计算3).反向传播计算完整代码请见:
cnn.py(https:///huxiaoman7/PaddlePaddle_cod e/blob/master/1.mnist/cnn.py)最后,我们用之前的4 * 4的image数据检验一下通过一次卷积神经网络进行前向传播和反向传播后的输出结果:运行一下:运行结果:总结本文主要讲解了卷积神经网络中反向传播的一些技巧,包括卷积层和池化层的反向传播与传统的反向传播的区别,并实现了一个完整的CNN,后续大家可以自己修改一些代码,譬如当水平滑动长度与垂直滑动长度不同时需要怎么调整等等。
参考文章:
1.https:///pinard/p/6494810.html
2.https:/ //hanbingtao/note/476663。