已经上传了完整的代码和数据,数据比较少,大家可以帮忙补充。
项目地址(记得给个start):https://github.com/jimenbian/face_rank
最近咳嗽加班比较严重,耽误了几天,今天接着之前的文章来讲。在上一篇文章中我们已经生成了预测模型,今天要做的事情很简单,就是调用这个模型针对某一张人脸图片进行分类,看看究竟把这个人按照颜值分到class1(好看的一类)还是class2(不好看的一类)。现在直接来看face_test.py这个代码。
路径设置
IMAGE_PATH = './trainDataSet/class1/d.jpg'
MODEL_PATH='./model/model'
IMAGE_PATH是需要预测的图片的地址,我们就随便选了一张,帅不帅大家自己判断
MODEL_PATH是上一篇文章介绍的生成好的模型存放的路径
网络结构
通过conv_net函数构建的CNN网络结构
图片预处理
接下来我们要对预测图片做一下预处理,是得图片可以直接通过模型预测。预处理逻辑与训练的时候基本相同
image_test = tf.read_file(IMAGE_PATH)
image_test = image_test * 1.0/127.5 - 1.0
label=0
做一些解码、resize、归一化工作,然后将预测图片生成为tensorflow的batch。
构建预测逻辑
logits_train = conv_net(X_test, N_CLASSES,dropout, reuse=False, is_training=True)
result=tf.argmax(logits_train, 1)
首先通过conv_net函数构建网络,因为是二分类问题,只有好看和不好看两种情况,通过tf.argmax挑选出属于class1和class2的概率。
在session中启动result的计算op,然后把结果打印。
预测结果
通过tf.session中的print(result1[0])把结果打印出来:
如果结果是表示预测图片属于class1
如果结果是1表示属于class2
好啦,两篇分享的文章都写出来了,代码数据也贡献出来了,大家学会了没~
End
为了方便大家学习与交流,凡人云近日已开通机器学习社群!
分享公众号名片到40人以上的大群并截图给小助手,小助手就会拉你入群
在这里你可以得到:
1.各种学术讨论
2.最新的资料分享
3.不定期的征文以及联谊活动!
领取专属 10元无门槛券
私享最新 技术干货