用深度学习做球星颜值打分完整案例(一)
已经上传了完整的代码和数据,数据比较少,大家可以帮忙补充。
项目地址(记得给个start):https://github.com/jimenbian/face_rank
先来说一下项目的背景,这次做的是一个最基础的图像识别案例,通过训练一个模型来给NBA球星的颜值打分,嗯,楼主麦迪、艾弗森球迷。选择NBA的数据是因为,NBA球星都有正装照,比较好收集。我们最终呈现的效果是这样的:先收集球星大脸照,标记出颜值高的和颜值低的,然后使用Tensorflow的CNN网络训练颜值打分模型,最后可以利用模型对任意球星脸是高颜值或者低颜值来评分。
另外还有一种数据收集的方法,悄悄透漏给大家,如果做美女的颜值打分训练,男同学可以打开T盘的唐诗三百首目录,在里面可以方便的截取高清人脸大图。
讲一下工程
实验环境是PYTHON2.7,Tensorflow版本1.4,无其它依赖库。
下面看一下整个工程,
face_train.py用来训练模型
face_test.py用来预测
TrainDataSet存训练数据
讲一下数据
打开trainDataSet这个文件夹,里面是分了class1和class2两个目录,class1用来存放颜值比较高的球星图片,如下图:
class2存放颜值不那么高的,这样在训练的时候就会做到区分,也构成了一个二分类场景,以下是class2的一张例图:
在构建训练数据的时候有三个注意事项:
图片要尽可能清晰,要尽可能多
大小尺寸最好要相同
最好每个图片只有一张人脸,而且占据篇幅很大
讲一下模型训练
打开face_train.py文件,可以看到整个的训练代码,可以运行这个文件生成model,下面讲一下其中一些关键函数的含义,请对照代码理解。
1.Model目录设置
MODE ='folder' # or 'file', if you choose a plain text file (see above).
DATASET_PATH = 'trainDataSet' # the dataset file or root folder path.
# ImageParameters
N_CLASSES= 2 # CHANGE HERE, total number of classes
IMG_HEIGHT= 64 # CHANGE HERE, the image height to be resized to
IMG_WIDTH= 64 # CHANGE HERE, the image width to be resized to
CHANNELS= 3 # The 3 color channels, change to 1 if grayscale
MODE设置了文件读取方式,这里使用folder模式
DATASET_PATH指定的是训练数据文件夹
N_CLASSES分类的种类,这里因为分美和丑,所以是2类
IMG_HEIGHT、IMG_WIDTH、CHANNELS:表明数据是64*64像素的3元彩色图片
2.读数据
调用的是read_images函数,把训练数据进行queue读取,然后把图片二进制转码,并且将图片的尺寸统一。生成X,Y对应的是两个列表,分别对应每个图片的二进制格式和所属的类别是美还是丑。
3.CNN网络
本案例使用的是4层CNN网络结构,对应的是conv_net,具体的CNN说明可以看我之前发的关于CNN的文章:深度学习CNN眼中的图片是什么样的
4.训练
现在已经生成了整个CNN网络,也有了数据流,接下来就是通过后向传播训练整个网络。
通过tf.global_variables_initializer()为训练网络生成默认参数
然后通过reduce_mean、train.AdamOptimizer这些OP来做模型的参数训练
train.Coordinator是构建数据流读取线程,一定要加上,不然无法运行
利用tf.train.Saver()保存整个模型的参数
以上就是模型训练的一些关键的函数,在使用的时候只要clone项目,在根目录下执行:
python face_train.py
即可生成模型文件夹model目录:
ok~模型训练就讲完了,下次讲如何通过这个模型对单个NBA球星的颜值打分,不知道大家看懂了没有,此文先给想完整体验一下深度学习做图片分析的小白用户,用的是最基础的代码。最近跳票有点多,主要是加班太猛了~
用深度学习做球星颜值打分完整案例(一)相关推荐
- 深度学习实现NBA球星颜值打分完整案例(二)
已经上传了完整的代码和数据,数据比较少,大家可以帮忙补充. 项目地址(记得给个start):https://github.com/jimenbian/face_rank 最近咳嗽加班比较严重,耽误了几 ...
- 【干货】怎样用深度学习做语音识别
[新智元导读]吴恩达曾经预测当语音识别的准确率从95%上升到99%时,语音识别将会成为人类与计算机交互的新方式.归功于深度学习,这4%的准确率的提升使得语音识别从难以实际应用的技术变成有无限的应用潜力 ...
- 用深度学习做命名实体识别(五)-模型使用
通过本文,你将了解如何基于训练好的模型,来编写一个rest风格的命名实体提取接口,传入一个句子,接口会提取出句子中的人名.地址.组织.公司.产品.时间信息并返回. 核心模块entity_extract ...
- 用深度学习做命名实体识别(四)——模型训练
通过本文你将了解如何训练一个人名.地址.组织.公司.产品.时间,共6个实体的命名实体识别模型. 准备训练样本 下面的链接中提供了已经用brat标注好的数据文件以及brat的配置文件,因为标注内容较多放 ...
- 如何用深度学习做自然语言处理?这里有份最佳实践清单
如何用深度学习做自然语言处理?这里有份最佳实践清单 By 机器之心2017年7月26日 14:16 对于如何使用深度学习进行自然语言处理,本文作者 Sebastian Ruder 给出了一份详细的最佳 ...
- 手把手教你用深度学习做物体检测(二):数据标注
"本篇文章将开始我们训练自己的物体检测模型之旅的第一步-- 数据标注." 上篇文章介绍了如何基于训练好的模型检测图片和视频中的物体,若你也想先感受一下物体检测,可以看看上篇 ...
- 手把手教你用深度学习做物体检测(四):模型使用
上一篇<手把手教你用深度学习做物体检测(三):模型训练>中介绍了如何使用yolov3训练我们自己的物体检测模型,本篇文章将重点介绍如何使用我们训练好的模型来检测图片或视频中的物体. 如 ...
- 劲爆!有人不用深度学习做强AI?道翰天琼认知智能机器人平台API接口大脑为您揭秘
劲爆!有人不用深度学习做强AI?道翰天琼认知智能机器人平台API接口大脑为您揭秘 认知智能是计算机科学的一个分支科学,是智能科学发展的高级阶段,它以人类认知体系为基础,以模仿人类核心能力为目标,以信息 ...
- 实现Linux服务器配置深度学习环境并跑代码完整步骤
实现Linux服务器配置深度学习环境并跑代码完整步骤 目录 实现Linux服务器配置深度学习环境并跑代码完整步骤 安装pytorch 第一步 安装anaconda创建虚拟环境 1.下载安装包 2.安装 ...
最新文章
- vim设置窗体大小的环境变量
- 博耳电力中标上海万国数据中心项目
- 把DXF导入到Altium Designer的完美方法
- sketch软件_Sketch软件怎么用?怎么提升Sketch软件技巧?
- 训练数据集时为何要先加载预训练模型作为初始化,这样做有何好处?
- java 读utf-8 xml_〖JAVA经验〗JDom输出UTF-8的XML完美解决方法
- jQuery中的元素操作
- ajax 跨站返回值,jquery ajax 跨域问题
- 一加Nord或在国内上市:骁龙765G+90Hz双孔OLED屏
- python下载网页中的pdf文件_Python下载PDF嵌入页面
- MOSFET的半桥驱动电路设计要领详解
- linux认证ppt的图片,linux用户、组和身份认证-课件(PPT-精).ppt
- 数据采样控制系统的事件触发传输方案与L2控制联合设计
- 【解决方法】iOS 开发小技巧(一)
- The Preliminary Contest for ICPC Asia Nanjing 2019
- 关于匿名者组织(Anonymous),你都知道哪些?
- ABP应用——修改EF Core
- Tasteless challenges medium WP
- PS176.PD转HDMI芯片简介以及封装
- 【SSH系列】---Hibernate的基本映射
热门文章
- 万水千山走遍[2011]-三清山
- oracle 配置白名单
- python中的for in循环有什么意思_for _ in xxx中的下划线_是什么意思?
- 手写数字识别_MNIST数据集
- IP地址 子网掩码 网络号 主机号 网络地址 主机地址以及ip段/数字-如192 168 0 1/24是什么意思
- Redundancy
- a 标签之假链接 和假链接
- [转载]海康摄像头sdk与web教程
- SpringBoot: redis/clients/jedis/util/SafeEncoder
- 【Luogu】P5901 [IOI2009] regions