python编程题自动评分系统_用Python为你的「颜值评分」,看看人工智能为你打几分?...
今天我们分享的Python程序,是一款用深度学习来为颜值评分的应用,在科技飞速发展的当今社会,我们可以通过机器学习实现自动驾驶、识别字体等,甚至连谷歌研发的Alphago都可以向人类的围棋事业发出挑战。所以,今天码趣君给大家推荐一款有趣的小项目——FaceRank。
FaceRank
提供了图片处理的工具集,它是基于TensorFlow的CCN模型。有了这个模型,只要给它一张照片,它就能帮我们来筛选高颜值的小姐姐(小哥哥),还可以在校园校草校花的评比中,作出可靠的参考预测。当你想给明星的颜值打个分时,你可以将这个工作交给FaceRank,这时你可以告诉别人,这是人工智能打出的分数,很客观的呦!
TensorFlow
是谷歌研发的第二代人工智能学习系统,是将复杂的数据结构传输至人工智能神经网中,进行分析和处理的一套系统。它可用于语音识别或图像识别等多项机器深度学习领域,可在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。TensorFlow将完全开源,任何人都可以用。
什么是开源项目?
开源项目指源码被公众使用的软件,并且软件的使用、修改和发行不受许可证的限制。
下载
Tensorflow 安装:pip install tensorflow
简介:Tensorflow 是谷歌的机器学习框架,FaceRank 使用了基于它的 CNN 模型。 http://www.tensorflownews.com/2017/07/28/installing-tensorflow-tensorflow/
face_recognition 安装:pip install face_recognition
简介:这个库在项目中,用来从图片中截出人脸,并保存为新文件,方便生成数据集。 这个库比较难装,如果直接安装失败,建议使用 docker。
数据集
1. 我们现在需要130张128*128的随意的图片
2. 要注意图片的命名:图片名:1-3.jpg,表示分值为1的第3张图片。
3. 请将符合上述名格式的图片放在resize_images中,目的是训练模型。
4. find_faces_in_picture.py这个函数,运用find_and_save_face就如翻译一样,是从图片中找到人脸的坐标(关键是坐标),并且保存为新图片。
5. 用resize将图片统一为128*128的大小,为之后的模型训练打下坚实的基础。
人脸打分的基础是 TensorFlow 中的CNN 模型
网络结构
而下列代码的网络结构是:
卷积层池化层卷积层池化层全链接层
卷积层:在泛函分析中,卷积、旋积或摺积(英语:Convolution)是通过两个函数f 和g 生成第三个函数的一种数学算子,表征函数f 与g经过翻转和平移的重叠部分的面积。
池化层:池化层往往在卷积层后面,通过池化来降低卷积层输出的特征向量,同时改善结果CNN网络中前几层的卷积层参数量占比小,计算量占比大;而后面的全连接层正好相反,大部分CNN网络都具有这个特点。因此我们在进行计算加速优化时,重点放在卷积层;进行参数优化、权值裁剪时,重点放在全连接层。
以下代码为卷积神经网络部分代码:
# Create model
def conv_net(x, weights, biases, dropout):
# Reshape input picture
x = tf.reshape(x, shape=[-1, 128, 128, 3])
# Convolution Layer(卷积层)
conv1 = conv2d(x, weights['wc1'], biases['bc1'])
print(conv1.shape)
# Max Pooling (down-sampling)(池化层)
conv1 = maxpool2d(conv1, k=2)
print(conv1.shape)
# Convolution Layer(卷积层)
conv2 = conv2d(conv1, weights['wc2'], biases['bc2'])
print(conv2.shape)
# Max Pooling (down-sampling) (池化层)
conv2 = maxpool2d(conv2, k=2)
print(conv2.shape)
# Fully connected layer(全链接层)
# Reshape conv2 output to fit fully connected layer input
fc1 = tf.reshape(conv2, [-1, weights['wd1'].get_shape().as_list()[0]])
fc1 = tf.add(tf.matmul(fc1, weights['wd1']), biases['bd1'])
fc1 = tf.nn.relu(fc1)
# Apply Dropout
fc1 = tf.nn.dropout(fc1, dropout)
# Output, class prediction
out = tf.add(tf.matmul(fc1, weights['out']), biases['out'])
return ou
训练
一切都准备好了,可以直接运行 train_model.py
这部分内容在 Github 有比较详细说明:
可以参考:https://github.com/fendouai/FaceRank/
测试
运行完 train_model.py 之后,可以通过运行 run_model.py 来测试模型是否完整,也可以在这个过程中查找漏洞.
模型使用
FaceRank在训练之后,可以直接运行。因为FaceRank具有模型保存功能,所以非常的智能。
run_model.py :可以成函数或者类库使用,很方便。
(来源:http://www.tensorflownews.com/)
以上是今天给大家带来的小项目,这个项目是以Python为基础的编程,如果感兴趣的小伙伴们可以尝试一下。Python语言具有简洁、易读、易操作特征,可以快速呈现效果,利于激发青少年学习动力和信心;同时,Python也被称为“胶水语言”,具有扩展性,能够把其他语言制作的模块轻松地进行链接。
python编程题自动评分系统_用Python为你的「颜值评分」,看看人工智能为你打几分?...相关推荐
- 会python编程可以做什么工作_学Python编程到底能做什么工作?
学Python编程能做什么工作?随着人工智能发展,学习python语言的人员有更多的岗位机会,python从事的职业广泛,从游戏到AI人工智能能都可以用Python实现.除了编程,各种岗位的人都应该学 ...
- python编程能有什么用_揭秘python都能做什么?
Python作为一种功能强大,并井且简单易学的编程语言而广受好评,那么Python都能做么?概据起来有以下几个方面. Wob开发使用Python的二个基本应用就是进行Web开发,在国内,大一些的使用P ...
- python实现app自动签到器_利用Python实现App自动签到领取积分
要自动签到,最简单的是打开页面分析请求,然后我们用脚本实现请求的自动化.但是发现食行没有页面,只有 APP,这不是一个好消息,这意味着需要抓包处理了. 有需要Python学习资料的小伙伴吗?小编整理[ ...
- linux环境下python编程指南,在Linux系统中搭建Python编程环境
Linux系统是为编程而设计的,因此在大多数Linux计算机中都默认安装了Python. 1. 检查Python版本 在系统中运行应用程序Terminal(如果是Ubuntu,可按Ctrl+Alt+T ...
- 树莓派python编程入门先学什么_树莓派Python编程入门与实战
树莓派Python编程入门与实战 编辑 锁定 讨论 上传视频 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 树莓派是一个只有信用卡大小的裸露电路板,它也是一个运行开源Lin ...
- python tab键自动补全_设置python中TAB键自动补全方法
设置python中TAB键自动补全方法 一.创建自动补全脚本如下: vi /tmp/python/tab.py #!/usr/bin/python # python tab file import s ...
- python编程求n的阶乘_使用Python编程的阶乘
python编程求n的阶乘 Before we start implementing factorial using Python, let us first discuss what factori ...
- python开发出来的crm系统_用Python打造一个CRM系统(二)
在上一篇中介绍了CRM和Django,在本篇中将聊聊Django的最佳实践. 总的来说就是遵循Django的设计理念:松耦合.代码精简.快速开发.DRY.明确优于隐式.一致性等.下面从开发环境.项目组 ...
- 苹果 python蚂蚁森林自动收能量_用Python实现定时自动化收取蚂蚁森林能量,再也不用担心忘记收取了...
1. 概述 提到蚂蚁森林,大家应该都知道,你是否有因忘记收取能量而被好友收取的经历呢? 如果你不是蚂蚁森林重度用户,被别人收取了能量可能对你来说没什么. 但如果你是蚂蚁森林重度用户,遇到能量被偷 .. ...
最新文章
- YOLOv3学习笔记
- 用脑科学支持人工智能
- linux下安装mysql5.7.25详细教程
- Mac 下Eclipse无法连接手机
- 2.6内核的配置与编译
- 恶意软件“EXPENSIVEWALL”感染数百万台安卓设备
- julia与python对比_有人说Julia比Python好,还给出了5个理由
- 面试之JSP九大内置对象和JSP四大作用域
- java异常处理方式推荐做法_谈谈Java异常处理这件事儿
- DEDE留言板调用导航的方法
- java class类
- Uber AI 研究院深度解构 ICLR 2019 最佳论文「彩票假设」!
- verilog符号 与或非 异或_与非门、或非门、异或门、同或门的逻辑表达式和逻辑符号怎么写...
- linux工作中常用文件操作命令
- 频登各大时装周运动品牌FILA在得物App首发和平精英联名系列
- 活动报名 | 保护儿童,保护未来!智源发布《面向儿童的人工智能北京共识》
- igraph与netwrokx的转换
- KEIL5 AC6 出现printf告警
- BitComet Stable (build 1.66.4.13) 比特彗星-使用教程
- Camera | 3.瑞芯微平台MIPI摄像头常用调试命令
热门文章
- 30岁却没有一技之长还面临失业,该怎么办?
- 自然语言理解(NLU)难在哪儿?
- 基于STM32采用CS创世 SD NAND(贴片SD卡)完成FATFS文件系统移植与测试(中篇)
- 统计学计算机难吗,我能不能做生信?生信难吗?
- Unfolding the Alternating Optimization for Blind Super Resolution
- 实现数组扁平化的6种方式
- 网上java代码中文在subtext3中显示乱码
- gerber学习总结
- 【游戏测试】用 python 写个自动拉取手机或模拟器游戏 log 到本地的工具
- ssm体育课堂管理系统毕业设计源码181626