首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >基于pytorch卷积人脸表情识别–毕业设计「建议收藏」

基于pytorch卷积人脸表情识别–毕业设计「建议收藏」

作者头像
全栈程序员站长
发布于 2022-07-28 03:15:34
发布于 2022-07-28 03:15:34
1.6K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

基于卷积神经网络的人脸表情识别

前言

这篇文章记录一下我本科毕业设计的内容。我的课题是人脸表情识别,本来最开始按照历届学长的传统是采用MATLAB用传统的机器学习方法来实现分类的。但是鉴于我以前接触过一点点深度学习的内容,觉得用卷积神经来实现这个网络或许效果会好一点。于是我上网络上搜集了大量资料,照着做了一个基于Pytorch实现的卷积模型,加入了调用摄像头实时识别的程序。第一次接触机器视觉的东西,没有什么经验,还望指教。本次设计的参考来源于以下: 1.基于卷积神经网络面部表情识别(Pytorch实现)–秋沐霖。链接:LINK 2.Pytorch基于卷积神经网络的人脸表情识别-marika。链接:LINK 3.Python神经网络编程-塔里克

毕业设计内容介绍

本文章使用Pytorch深度学习框架用卷积神经网络设计了人脸表情识别程序,将部分FER2013作为数据集进行训练,另一部分作为测试集。利用三层卷积层和四层全连接层对数据集进行模型训练,训练集精度能够达到99.4%,测试集精度最高达到60.5%。同时利用训练好的模型设计了实时人脸表情识别系统,能够调用摄像头对人脸表情进行实时分析,能够识别出基本的表情类别并通过标签显示在窗口上,同时展示系统判定的概率大小。

卷积神经网络的设计

卷积网络的模型

数据集选用的是FER2013{百度网盘链接:Link} 链接:https://pan.baidu.com/s/1MTQ12vq60vVOWIPTLlfOGw 提取码:xili 该数据为csv格式存储,0-6分别代表了:(0)生气、(1)厌恶、(2)恐惧、(3)高兴、(4)悲伤、(5)惊讶、(6)自然。这些数据需要进行处理转变为jpg格式输入网络训练。下图展示了处理好的数据集。将数据集

下图是本次系统所采用的卷积神经网络模型。数据集图像大小为48×48,模型由三层卷积和池化层组成,和四层全连接层组成。结构比较简单,因此最终训练出来的模型识别精度有限。

卷积池化过程详细说明

模型构建好了,那具体过程怎么实现呢,下面我会对每一次卷积和池化的过程进行详细说明。模型输入为1通道48×48的图像,输出为256通道的6×6的特征图。卷积过程中均采用3×3的卷积核,为了卷积后特征图尺寸不变,在卷积之前进行了一圈边缘填充。 填充意思是原本48×48的图像,padding为1时,会变成49×49的尺寸。 步长是指每次卷积核或者池化核移动的跨度大小。

第一层卷积池化过程

第一层卷积核池化过程:如下图所示,在第一层卷积层中,我们采用的是3×3的卷积核,输入图像大小为48×48,卷积后得到了64个通道的48×48的特征图。然后是经过ReLU函数运算,使特征图内像素值保持在合理的范围内。然后使用大小为2的池化核进行池化操作,步长为2,最后将得到64通道的24×24的特征图。

第二层卷积池化过程

第二层卷积和池化过程:如图所示,在第二层卷积层,采用的是128个3×3的卷积核,步长为1,边缘填充为1,进行卷积之后输出为一个128通道的24×24的特征图。再经过了ReLU函数后,使用2×2的核进行池化操作,得到了128张12×12的特征图。

第三层卷积池化过程

第三层卷积和池化的过程:如下图所示,第三层卷积采用256个卷积核对128通道的上一层输出的特征图进行卷积操作,256个通道的12×12的特征图,然后再经过ReLU函数运算,对其进行2×2的池化操作,得到了256通道6×6的特征图。

全连接层过程

在经过三层卷积层操作后,在第四层中将第三层输出的256通道3×3的特征图进行一维化展开,然后将其全连接到4096个神经元节点上,经过ReLU激活层,再进行Dropout。在第五层中,将4096个节点连接到1024个神经元节点,经过ReLU层,再经过Dropout。在第六层中,将上一层的1024个神经元节点对下一层的256个节点进行全连接,然后连接到最后一层输出层的7个神经元节点上,经过Softmax函数就可以完成7种表情的分类,输出每一种表情的概率。

模型的训练过程

卷积与池化原理

模型构建好以后,网络的参数都还是随机的,没有任何意义,那怎么样才能让卷积神经网络完成分类的任务呢?下面我来谈谈卷积神经网络的实现过程。卷积实际上就是对图像的内容进行特征提取的一个过程,卷积核就像是一个小的窗口,去图像上逐一套,看每次所移动到的窗口位置上的“贴合度”,要是“贴合度”高,点积求和运算得到的数值就会比较高,反之就会较小。这样操作以后就会的到一个特征图。下图展示了对图像进行卷积的具体过程,卷积核共用一个偏置。在图像中,浅层的卷积层用来提取原始图像上的边缘轮廓信息,深层次的卷积层能从底层次的特征图中迭代提出复杂的图像抽象信息。 卷积过程

池化过程:池化层能够十分有效地减小图像的空间尺寸和参数量,从而减小计算量。因此,当输入图像比较大的时候,通常会导致网络运算参数量很大,在相邻的卷积层之间间隔性地引入池化操作,能够有效地解决训练参数过多的问题,能够在有效信息保留的同时压缩图像大小,提高计算速度。池化层可以选择进行平均池化或者是最大池化。平均池化是指对单元格内的所有元素指相加取平均值,最大池化是在所有对应单元格内的所有元素值中取最大值最为池化输出结果。下图展示了池化过程,采用的是最大池化。 池化过程动图

模型如何训练

表情特征训练就是用本次设计的模型对预先处理好的数据集进行提取表情特征的过程。训练过程大概分为:前向传播、反向传播、损失值计算、求权值梯度和权值更新几个过程。下图展示了神经网络训练过程。

反向传播的实现过程:深度学习中学习方式一般都是反向传播方法,–反向传播本身是有梯度下降法发展而来,通过引入一个神经单元误差delta,该变量能将梯度下降法中比较繁琐的求解偏导过程变为数列的递推关系式。通俗的来说就是,通过链式法则,可以求解出全局的损失函数对于某一个权值或者偏置的偏导。然后乘以eta,也就是学习率来更新参数大小。下式为神经单元误差delta的定义。 δ j l = ∂ C ∂ z j l ( l = 2 , 3 , ⋯   ) \delta _{j}^{l}=\frac{\partial C}{\partial z_{j}^{l}}\left( l=2,3,\cdots \right) δjl​=∂zjl​∂C​(l=2,3,⋯) 神经单元误差怎么求呢?根据链式法则推导,得到了第l层和第l+1层的关系式如下面公式所示。只要我们得知了最后一层的神经单元误差,就可以通过公式进行递推得到前面的神经单元误差,进而可以得到我们更新参数需要用到的参数梯度值。 δ i l = { δ 1 l + 1 w 1 i l + 1 + δ 2 l + 1 w 2 i l + 1 + ⋯ + δ m l + 1 w m i l + 1 } a ′ ( z i l ) \delta _{i}^{l}=\left\{ \delta _{1}^{l+1}w_{1i}^{l+1}+\delta _{2}^{l+1}w_{2i}^{l+1}+\cdots +\delta _{m}^{l+1}w_{mi}^{l+1} \right\} a’\left( z_{i}^{l} \right) δil​={ δ1l+1​w1il+1​+δ2l+1​w2il+1​+⋯+δml+1​wmil+1​}a′(zil​) 利用上式,我们可以通过递推关系逐一求出所有需要更新的参数的神经单元误差,求出这个delta以后,我们就可以通过神经单元误差与权值和权重之间的联系求的权值和偏置对于损失函数的偏导数。如下公式所示。 { ∂ C ∂ w j i l = δ j l a j l − 1 ∂ C ∂ b j l = δ j l ( l = 2 , 3 ⋯   ) \begin{cases} \frac{\partial C}{\partial w_{ji}^{l}}=\delta _{j}^{l}a_{j}^{l-1}\\ \frac{\partial C}{\partial \mathrm{b}_{j}^{l}}=\delta _{j}^{l}\\ \end{cases}\left( l=2,3\cdots \right) ⎩⎨⎧​∂wjil​∂C​=δjl​ajl−1​∂bjl​∂C​=δjl​​(l=2,3⋯) 得到对于损失函数的偏置以后,我们的目的是为了更新网络的权重,使网络的误差进一步减小,通过以下公式进行权值更新。

模型的评估指标

在模型构建完毕后,需要对模型的效果好坏进行一些评估,然后以评估的效果来作为参考进而继续调整模型的权值和偏置量,以达到最佳的效果。根据不同选择的模型评估指标,就会有不同的评估结果,且没有什么模型能够保证在所有的评估中都是最优,因此模型的强弱能力还主要取决于要解决什么样的问题。例如自动化生成线中的水果好坏检测机器,其目的是将好的水果送到生产线前端去,坏的水果挑出来,即便仍然会有一些误判,但是影响不会太大。而对于刑事侦查中的犯罪调查就不同了,模型的建立目的是将罪犯识别出来,而不希望有太高的误判。 卷积神经网络通常使用的评估指标也就是损失函数是交叉熵损失函数。交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布与预测概率分布之间的差异。交叉熵的值越小,模型预测效果就越好。下式为交叉熵损失函数。 C = − 1 n ∑ i = 1 n [ y i ln ⁡ ( σ ( z ) ) + ( 1 − y i ) ln ⁡ ( 1 − σ ( z ) ) ] C=-\frac{1}{n}\sum_{i=1}^n{\left[ y_i\ln \left( \sigma \left( z \right) \right) +\left( 1-y_i \right) \ln \left( 1-\sigma \left( z \right) \right) \right]} C=−n1​i=1∑n​[yi​ln(σ(z))+(1−yi​)ln(1−σ(z))]

训练结果分析

通过训练曲线分析

下图显示的是训练的每个时期的损失值和测试集精度以及测试集精度曲线。其中Batch Size大小为128,学习率为0.1,对模型训练50次。图中横轴数值表示迭代轮数,纵轴数值代表了模型损失率和训练精度。从图中可以看到,训练迭代到第35轮的时候训练集精度和测试集精度都基本趋于稳定,其中训练集测试精度能够达到99.4%,测试集精度最高达到60.5%。此时损失值稳定在一个较小的数值小幅度震荡,基本能够保持在一个稳定的趋势,这时候训练模型的性能较好。

输出曲线实现的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def draw(train_acc, val_acc, epoch, loss):
    epoch_list.append(epoch)
    train_acc_list.append(train_acc)
    val_acc_list.append(val_acc)
    loss_list.append(loss)
    x = torch.tensor(train_acc_list)
    y = torch.tensor(val_acc_list)
    l = torch.tensor(loss_list)
    z = torch.tensor(epoch_list)
    plt.cla()
    plt.ylim((0, 2))
    plt.xlabel('epoch')
    plt.ylabel('accuracy')
    # plt.scatter(z.numpy(), x.data.numpy(), c='r', marker='x')
    # plt.scatter(z.numpy(), y.data.numpy(), c='b')
    # plt.scatter(z.numpy(), l.data.numpy(), c='g', marker='o')
    plt.plot(z.numpy(), x.data.numpy(), color='red', linestyle='--', label='train_acc')
    plt.plot(z.numpy(), y.data.numpy(), color='blue',linestyle='-.', label='val_acc')
    plt.plot(z.numpy(), l.data.numpy(), color='green', label='loss_rate')
    plt.legend()
    # plt.pause(0.005)
    plt.show()

每次训练一轮就调用一次该函数,然后更新图像。 下面是训练过程中的动图效果。为了显示效果直观,在每一轮训练都标注了点。

通过混淆矩阵分析效果

混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。如下图所示,表示的是7种表情的混淆矩阵,矩阵正对角线代表每一种表情的判断准确率。在该图中的横坐标代表对人脸表情的预测类型,纵坐标代表了人脸表情的正确类别。

从图中我们可以看出对于高兴的判别准确率能够达到85%,也就是说在训练集中对所有开心的表情进行判别中有85%能够正确识别的,开心的表情被错判为生气、悲伤、惊讶和自然的错误率分别是3%、5%、2%和5%。在7类表情判定中,对恐惧的识别精度最低,正确率只有28%,也就是在所有恐惧的数据集中,只有28%的图片被判定正确。可见,由于对应恐惧的训练集样本较少,导致最后判定的错误率较高。 混淆矩阵实现代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def plot_confusion_matrix(cm, savename, title='Confusion Matrix'):
    plt.figure(figsize=(12, 8), dpi=100)
    np.set_printoptions(precision=2)  # 控制输出小数点个数为2

    # 在混淆矩阵中每格的概率值
    ind_array = np.arange(len(classes))     # 生成一个长度为*的列表[1,2,3....]
    x, y = np.meshgrid(ind_array, ind_array)    # 在网格上画一个正方形坐标
    for x_val, y_val in zip(x.flatten(), y.flatten()):
        c = cm[y_val][x_val]
        if c > 0.001:
            plt.text(x_val, y_val, "%0.2f" % (c,), color='red', fontsize=15, va='center', ha='center')

    plt.imshow(cm, interpolation='nearest', cmap=plt.cm.Pastel2)
    plt.title(title)
    plt.colorbar()
    xlocations = np.array(range(len(classes)))
    plt.xticks(xlocations, classes, rotation=90)
    plt.yticks(xlocations, classes)
    plt.ylabel('Actual label')
    plt.xlabel('Predict label')

    # offset the tick
    tick_marks = np.array(range(len(classes))) + 0.5
    plt.gca().set_xticks(tick_marks, minor=True)
    plt.gca().set_yticks(tick_marks, minor=True)
    plt.gca().xaxis.set_ticks_position('none')
    plt.gca().yaxis.set_ticks_position('none')
    plt.grid(True, which='minor', linestyle='-')
    plt.gcf().subplots_adjust(bottom=0.15)

    # show confusion matrix
    plt.savefig(savename, format='png')
    plt.show()

通过摄像头识别表情

设计流程

根据上一节训练好的模型设计一个能够调用摄像头实时识别人脸表情的系统,系统要识别的表情分为7种,分别是:悲伤、高兴、恐惧、愤怒、中性、厌恶和惊讶。识别结果会将标签显示在识别界面,同时显示识别的概率大小。系统的识别过程有如下几个步骤: (1)运行系统的程序,自动打开摄像头; (2)摄像头打开后,自动捕获图片,检测到人脸,框出人脸; (3)对框中的人脸进行裁剪,并送入系统进行处理灰度化,大小尺寸归一化,转变为TENSOR格式送入卷积神经网络; (3)卷积神经网络进行前向传播得到对7类表情的预测概率数组 (4)将卷积神经的输出取最大值作为预测值,将结果标签和对应概率输出在系统界面。

效果演示

上图演示了表情识别的效果,数字代表的是卷积神经网络输出的概率矩阵中的最大值四舍五入以后的数值。表示系统判定该表情的正确概率。

部分代码展示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 pre = model.forward(img)
    pre = F.softmax(pre, dim=1)  # dim = 0是对列操作,dim = 1是对行操作
    pro = pre.cpu().data.numpy()
    max_num = max(pro[0])
    result = round(max_num, 2)
    # print(max_num)
    pred = np.argmax(pro, axis=1)
    # pre = model(img).item()
    # print(pre)
    # pre = pre.max(1)[1]
    frame = cv2.putText(frame, emotion[pred[0]], (100, 100), cv2.FONT_HERSHEY_SIMPLEX, 2.5, (55,255,155), 2)
    #显示窗口第一个参数是窗口名,第二个参数是内容
    frame = cv2.putText(frame, str(result), (400, 100), cv2.FONT_HERSHEY_SIMPLEX, 2.5, (55, 255, 155), 2)
    cv2.imshow('emotion', frame)
    if cv2.waitKey(1) == ord('q'):#按q退出
        break

总结

博主写这篇博客是为了记录自己学习的一些历程,第一次写博客,所以很多地方可能会有些错误,希望多多包涵,还请大佬们日后多加指点。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128396.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于pytorch卷积神经网络的人脸面部表情识别系统研究采用CNN+RestNet+VGG三种模型源码+模型+答辩材料
在日常工作和生活中,人们情感的表达方式主要有:语言、声音、肢体行为(如手势)、以及面部表情等。在这些行为方式中,面部表情所携带的表达人类内心情感活动的信息最为丰富,据研究表明,人类的面部表情所携带的内心活动的信息在所有的上述的形式中比例最高,大约占比55%。
云未归来
2025/07/22
770
基于pytorch卷积神经网络的人脸面部表情识别系统研究采用CNN+RestNet+VGG三种模型源码+模型+答辩材料
Pytorch实现基于卷积神经网络的面部表情识别(详细步骤)「建议收藏」
另外,我整理了整个项目的精简版本,完整代码,开箱即用,教程详细,方便快捷!下载:Pytorch实现基于卷积神经网络的面部表情识别项目源码
全栈程序员站长
2022/08/29
1.4K0
Pytorch实现基于卷积神经网络的面部表情识别(详细步骤)「建议收藏」
高精度人脸表情识别(附GitHub地址)
编者按:本文原作者吴捷,目前于中山大学就读研究生。研究领域为计算机视觉与自然语言处理。本文原载于知乎,经作者授权发布。欢迎去GitHub给大佬加星。
CV君
2019/12/27
10.7K1
高精度人脸表情识别(附GitHub地址)
基于深度学习的面部表情识别系统
来源商业新知网,原标题:零起步,数据科学家手把手教你coding表情识别(内附代码)
商业新知
2019/06/14
8K0
基于深度学习的面部表情识别系统
徒手实现CNN:综述论文详解卷积网络的数学本质
选自arXiv 机器之心编译 参与:黄小天、路雪、蒋思源 近日南洋理工大学研究者发布了一篇描述卷积网络数学原理的论文,该论文从数学的角度阐述整个卷积网络的运算与传播过程。该论文对理解卷积网络的数学本质非常有帮助,有助于读者「徒手」(不使用卷积API)实现卷积网络。 论文地址:https://arxiv.org/pdf/1711.03278.pdf 在该论文中,我们将从卷积架构、组成模块和传播过程等方面了解卷积网络的数学本质。读者可能对卷积网络具体的运算过程比较了解,入门读者也可先查看 Capsule 论文解
机器之心
2018/05/09
1.5K0
徒手实现CNN:综述论文详解卷积网络的数学本质
从0到1吃透卷积神经网络(CNN):原理与实战全解析
在当今人工智能(AI)飞速发展的时代,卷积神经网络(Convolutional Neural Network,简称 CNN)无疑是深度学习领域中最为耀眼的明星之一 。它就像是 AI 世界里的超级 “侦察兵”,在众多复杂的任务中发挥着至关重要的作用,尤其是在图像识别、目标检测、语义分割等计算机视觉领域,更是大放异彩。
正在走向自律
2025/05/19
1.7K0
从0到1吃透卷积神经网络(CNN):原理与实战全解析
【论文复现】微表情识别系统
面部表情图像预处理是面部表情识别的重要步骤,主要目的是在于提取特征之前排除一切与面部表情无关的干扰因素。例如,环境光照、姿势和不同背景等。在干扰排除后,将人类面部直接与公共参考系相对接、使每个面部特征对应的语义位置精准无误。人脸检测、人脸对齐、数据增强、人脸一是实现面部表情图像预处理的主要方法。
Eternity._
2024/12/24
3350
【论文复现】微表情识别系统
人脸表情识别系统介绍——上篇(python实现,含UI界面及完整代码)
人脸表情识别介绍与演示视频(视频链接:https://www.bilibili.com/video/BV18C4y1H7mH/)
全栈程序员站长
2022/08/11
1.9K0
人脸表情识别系统介绍——上篇(python实现,含UI界面及完整代码)
LeNet-5(论文复现)
LeNet是最早的卷积神经网络之一。1998年,Yann LeCun第一次将LeNet卷积神经网络应用到图像分类上,在手写数字识别任务中取得了巨大成功。LeNet通过连续使用卷积和池化层的组合提取图像特征。 出自论文《Gradient-Based Learning Applied to Document Recognition》。
Srlua
2024/11/30
3010
LeNet-5(论文复现)
【论文复现】LeNet-5
LeNet是最早的卷积神经网络之一。1998年,Yann LeCun第一次将LeNet卷积神经网络应用到图像分类上,在手写数字识别任务中取得了巨大成功。LeNet通过连续使用卷积和池化层的组合提取图像特征。 出自论文 《Gradient-Based Learning Applied to Document Recognition》 。
Eternity._
2024/11/30
4120
【论文复现】LeNet-5
微表情识别
使用卷积神经网络构建整个系统,在尝试了Gabor、LBP等传统人脸特征提取方式基础上,深度模型效果显著。在FER2013、JAFFE和CK+三个表情识别数据集上进行模型评估。
全栈程序员站长
2022/07/25
1.6K0
微表情识别
人脸表情识别实战:你的喜怒哀乐飞桨统统get!
【飞桨开发者说】李增保,2019年于安徽工业大学取得学士学位,目前在东南大学攻读硕士研究生学位,主要的研究方向为分布式无人机集群协同控制、算法设计与优化等。
用户1386409
2020/06/10
2.8K0
【深度学习 | 卷积&haar】面部表情识别系统|原理详解&附详细案例&源码
在微表情识别系统的研究中,对微表情的准确理解是至关重要的。本章将深入探讨微表情的定义、与常规表情的区别以及微表情的分类,为读者提供深入了解微表情的基础知识。
二一年冬末
2024/04/16
1.9K3
TensorFlow|基于深度学习的人脸表情识别系统
上传了模型权重和模型结构,因GItHub不支持25MB以上的文件,因此上传在此处,如果急用可以在此下载,也是作为对我工作的一些支持
全栈程序员站长
2022/07/22
1.6K0
TensorFlow|基于深度学习的人脸表情识别系统
深度卷积网络迁移学习的脸部表情识别
本次我想给大家分享一篇我阅读的一篇论文总结,希望可以给做人脸表情识别和深度学习的同学带了帮助,谢谢!也感谢“计算机视觉战队”平台可以给我这样一个机会。 这次看的这篇paper主要提出一个基于深度卷积网络迁移学习的有效脸部表情识别模型。 在MSRA-CFW数据库中通过1580类脸部识别的任务训练深度卷积网络(ConvNets),且从训练的深度模型迁移高层特征去识别脸部表情。主要根据四个面部表情数据库(CK+,JAFFE,KDEF和Pain expressionsform PICS)建立了一个面部表情数据库含
计算机视觉研究院
2018/04/17
2.1K0
深度卷积网络迁移学习的脸部表情识别
使用卷积神经网络进行实时面部表情检测
在社交互动中,面部表情在非语言交流中起着至关重要的作用。 心理学家保罗·埃克曼提出,全世界的人都有七种情绪表达方式:快乐、悲伤、惊讶、恐惧、愤怒、厌恶和蔑视。 建立更好的人机交互,例如通过图像检测人类情绪,可能是一项艰巨的任务。
deephub
2021/12/15
1K0
使用卷积神经网络进行实时面部表情检测
【人脸表情识别】基于视频的人脸表情识别不得不读的论文
上一篇专栏文章我们介绍了基于视频的人脸表情识别的相关概念,了解了目前基于视频的人脸表情识别领域最常用的几个数据集以及经典的实现方法。本文将延续上一篇的内容,分享近几年该领域一些主流的基于深度学习的方法实现。
用户1508658
2021/02/05
2.2K0
《PaddlePaddle从入门到炼丹》四——卷积神经网络
上一章我们通过学习线性回归例子入门了深度学习,同时也熟悉了PaddlePaddle的使用方式,那么我们在本章学习更有趣的知识点卷积神经网络。深度学习之所以那么流行,很大程度上是得益于它在计算机视觉上得到非常好的效果,而在深度学习上几乎是使用卷积神经网络来提取图像的特征的。在PaddlePaddle上如何定义一个卷积神经网络,并使用它来完成一个图像识别的任务呢。在本章我们通过学习MNIST图像数据集的分类例子,来掌握卷积神经网络的使用。
夜雨飘零
2020/05/06
5650
《PaddlePaddle从入门到炼丹》四——卷积神经网络
卷积神经网络概念与原理
受Hubel和Wiesel对猫视觉皮层电生理研究启发,有人提出卷积神经网络(CNN),Yann Lecun 最早将CNN用于手写数字识别并一直保持了其在该问题的霸主地位。近年来卷积神经网络在多个方向持续发力,在语音识别、人脸识别、通用物体识别、运动分析、自然语言处理甚至脑电波分析方面均有突破。
机器人网
2018/07/23
1.2K0
卷积神经网络概念与原理
卷积神经网络复习
卷积神经网络主要包括3层,即:卷积层、池化层以及全连接层。本文讲分别细致介绍这三层的作用和计算来复习一下卷积神经网络。本文采用简单的LeNet来讨论这些问题,模型的结构如下。
故事尾音
2019/12/18
7330
卷积神经网络复习
推荐阅读
相关推荐
基于pytorch卷积神经网络的人脸面部表情识别系统研究采用CNN+RestNet+VGG三种模型源码+模型+答辩材料
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档