分享好友 最新动态首页 最新动态分类 切换频道
【机器学习】百度飞桨AI Studio平台项目:基于卷积神经网络分类方法的人脸颜值打分
2024-12-26 15:52

本实验是大三上机器学习课程中的实习二,现将报告内容转至CSDN。本实验中我按照开源代码,只用VGG网络实现了人脸颜值打分,对于DNN网络和ResNet50方法尚未完全实现,但在本文章中也有呈现,可进行选择性忽略或参考。
项目源地址:你的颜值能打多少分?让飞桨来告诉你

在进行处理之前,先要对指定的包进行解压,来知道当前数据集名称。
按照以下代码,对压缩包进行处理

 

我们可以知道,此项目的数据包名称为data17941。
解压完毕后,便可以进行对指定库的导入。本项目中主要用到的库有以下几类
(1)paddle自带的库。飞桨paddlepaddle集成了python支持的机器学习模型的库,并予以提供了详细(2)python所支持的可视化图表库。因为本次实验需要绘制曲线、混淆矩阵等图表以支持模型拟合(3)python所支持的基本库和第三方处理库。
本次实验还需要用到像超参数学习率、分类数、训练轮数等一系列的参数,所以我们可以在开始的时候就定义一个train_parameters对这些参数进行封装。在本项目中,我们将图片大小input_size分类数class_dim原始数据集路径src_path要解压的路径target_path训练轮数num_epochs训练时每个批次的大小train_batch_size超参数学习率定义lr在了train_parameters中,以便后续进行使用。
在对数据包进行解压、相关库的导入以及参数的定义之后,我们便可以开始对数据集进行预处理。

在这一部分,我们会定义一个数据集类MyDataset,并对训练集和验证集进行划分。
在定义数据集类的时候,我们需要对image和label进行标识,喂入数据。在解压的数据集中我们可以发现,图片是以“图片得分-编号”的方式来进行命名的,所以我们读取图片,并对名称进行分割,取第一个数字,按照训练集和验证集分开的方式,存入label里。
定义完数据集后,可以构造训练、测试数据提供器。

之后对数据层进行定义。由于数据是224x224的三通道彩色图像,所以输入层image的维度为[None,3,224,224],label代表图片的颜值得分标签。此处可能会出现一个错误

AssertionError:In PaddlePaddle 2.x, we turn on dynamic graph mode by default, and ‘data()’ is only supported in static graph mode. So if you want to use this api, please call ‘paddle.enable_static()’ before this api to enter static graph mode.

定义好VGG网络结构以后,我们便可以开始进行模型的训练。
飞桨paddlepaddle是一个很强大的平台,在部署环境时可以自行选择使用CPU还是GPU进行操作。但是在选择之后,需要在代码里进行说明。

 

我们可以根据fluid库来创建一个实例exe,并在进行网络训练前,对执行参数初始化。定义好以后,执行训练之前,我们需要告知网络传入的数据分为两部分,即我们最开始提到的image、label。
之后就可以进行正式的训练了,本实践中设置训练轮数60。

在Executor的run方法中,feed代表以字典的形式定义了数据传入网络的顺序,feeder在上述代码中已经进行了定义,将data[0]、data[1]分别传给image、label。fetch_list定义了网络的输出。

但是后来认为此曲线不能满足我的特定要求,于是代码改正过程为

 
 
 

前面已经进行了模型训练,并保存了训练好的模型。接下来就可以使用训练好的模型对手写数字图片进行识别了。预测之前必须要对预测的图像进行预处理,首先对输入的图片进行灰度化,然后压缩图像大小为224x224(其实应该是100*100,但是我发现处理与否不影响结果,接着将图像转换成一维向量,最后对一维向量进行归一化处理。

在本次实验中,我所撰写的报告是基于VGG模型的神经网络方法对人脸颜值进行打分,但是在我所给出的源代码一栏内,还包含另外两种模型,以及其他处理曲线的方法。实际上,VGG、DNN、ResNet网络的方法大同小异,所以我只是在使用之后进行了简单对比,但是在总结的时候只选取了一种进行使用。除此之外,在我代码的注释栏内还有绘制混淆矩阵和ROC曲线的方法,在混淆矩阵的过程中,由于我使用VGG网络时读入数据和使用数据方法不当,所呈现出来的矩阵为空,但是使用其他网络则可以,遂没有采取,而ROC曲线是我在阅读他人技术文档的时候所发现的一种可视化方法,由于本实验不太需要ROC曲线,遂也没有采取。

在可视化图表中,我们很容易看出,随着数据量的逐步增加,准确率趋近于1,但是在数据量为某个值的时候,损失率达到了最高值,我猜测是模型的偶然情况。总的来说模型拟合的情况较好,没有出现过拟合的情况。

其实在进行数据预测的时候,我发现预测的准确率不是很理想,一方面是数据集较少,未能达到验证的效果,另一方面是选择的模型问题,没有进行进一步的优化。和其他同学对比之后,发现SVN、随机森林等方法在预测图片分数时效果略优于我目前所建立出来的模型,但是限于时间,我没有继续尝试。

本次实习我是基于百度某一版开源代码上进行的修改,在我改完之后,和另外的开源代码所对比,发现我的代码封装程度不够。

 
 
 
 

3.1 VGG Network Model

 

3.2 DNN Network Model

 

3.3 ResNet50 Network Model

 
 

4.1 VGG

 

4.2 DNN

 

4.3 ResNet50

 
 
 
 
 
 

本次实习的缺陷我在上述已经提及,我需要改进的几个方面大致如下
1.优化模型,并进行多次训练
2.采用其他分类器对数据进行分类
3.查看VGG网络的模型的使用问题,正确运用数据并查看混淆矩阵的输出情况

本次实习是我第一次接触百度飞桨paddlepaddle平台,这个平台与kaggle类似,但又不同,不同之处在于此平台结合国内的项目及数据集较多,且自行封装python中的一些函数,通过改进和优化,封装为自己的paddle库,方便用户进行使用。总的来说,此平台较为完善,可使用性高,开源代码参考性强。

这也是我自己第一次真正上手卷积神经网络有关的项目,在这个过程中,我了解到了从数据集的预处理,到训练,到测试的一系列完整过程,在这个过程中,一方面我体会到了机器学习的功能强大和用处广泛,另一方面我发现了自己的很多不足,在今后的学习中,我会多多改正。

最新文章
360收录网站提交入口 一键直达360收录,优化网站曝光新通道
优化搜索引擎可见性:深入解析360收录网站提交入口的权威指南在当今数字化时代,互联网已成为企业展示品牌、拓展市场、吸引客户的关键平台而搜索引擎,作为用户获取信息的主要门户,其重要性不言而喻对于任何希望在网络世界中占有一席之地
10款生成PPT的AI工具实测
    自从chatgpt爆火之后,各种AI工具突然就都原地开花。随便一搜各种写作、绘画、视频、办公的AI,层出不穷。我有时候看着这些博主整理的六七十个AI工具,真的怀疑他们是否真的都体验过。 本来我是没兴趣了解的࿰
Android 代码是设置屏幕为竖屏
当你开发一个Android应用时,可能会需要设置应用的屏幕方向为竖屏。下面我将告诉你实现这一功能的流程以及具体的代码示例。希望这能帮助你顺利完成任务!步骤描述第一步打开Android项目的文件第二步在需要设置为竖屏的Activity中进行设置第
1.网页数据采集工具的选择
Python编程Python是一种功能强大的编程语言,它需要特定的运行环境和一定的前期学习投入,因此上手难度相对较高。尽管如此,Python的用途广泛,适用于多种复杂任务。对于非计算机专业的新手来说,学习Python可能是一项挑战。然而,对于有一
Docker图形界面管理工具
docker集群管理工具包括: Kubernetes、Mesos、Rancher、Shipyard、Swarm等其中图形管理工具包含Kubernetes、Mesos、Rancher、Shipyard 唯独Swarm暂时不提供web界面(swarm是docker公司出的产品)。Kubernetes其特性主要
360再败诉,因恶意诋毁搜狗
近日,搜狗公司诉奇虎360公司不正当竞争案于北京知识产权法院终审宣判,法院认定360浏览器构成不正当竞争,需立刻停止对搜狗的不正当竞争行为,并赔偿搜狗经济损失。关键词:搜狗360近日,搜狗公司诉奇虎360公司不正当竞争案于北京知识产权
51cg官网地址怎么进入:如何访问拓展51cg官网地址并获得最新信息?
  内容创作需要紧密围绕目标受众的需求,尤其是在快速变化的信息环境中。深刻理解哪些话题能够引发共鸣,能帮助创作者产生更具吸引力和互动性的作品。
ai智能客服机器人训练方案
随着人工智能技术的不断发展,ai智能客服机器人已经成为企业提升客户服务效率和质量的重要工具。一个高效的智能客服机器人不仅能够快速响应用户的咨询,还能提供精准的问题解决方案,提升了用户的满意度和企业的服务水平。要做好ai智能客服
2024-12-17荥阳SEO实战分享:从策略到执行的全路径解析
在这个信息爆炸的时代,SEO不再是简单的关键词堆砌,而是策略与技术的深度融合。作为一名曾在SEO领域摸爬滚打的实践者,我深知其中艰辛与乐趣。今天,我想从我的实战经验出发,与大家分享如何真正学好SEO,让网站在搜索引擎中脱颖而出。一
2023年玩的人最多的游戏是哪款 热门的手游排行榜大全推荐
今天为大家带来2023年玩的人最多的游戏推荐,如果你是个手游迷,那你可不能错过这份游戏推荐!这里涵盖了各种类型的手游,无论你喜欢什么风格的游戏,都能找到一款适合你的!不论你想免费畅玩还是氪金,这里应有尽有,保证让你玩得过瘾!快
相关文章
推荐文章
发表评论
0评