tensorflow1.1/autoencoder人脸识别
来源:互联网 发布:mac粉底液专柜价 编辑:程序博客网 时间:2024/05/17 10:38
环境:tensorflow1.1,python3,matplotlib2.02
#coding:utf-8"""python3tensorflow 1.1matplotlib 2.02"""import tensorflow as tfimport pickleimport numpy as npimport matplotlib.pyplot as plt#读取数据集with open('facedataset.pickle','rb') as f: (train_data,train_labels),(test_data,test_labels) = pickle.load(f)learning_rate = 0.01N_pictures = 3train_data = train_data.astype(np.float32)train_data = np.random.permutation(train_data)test_data = test_data.astype(np.float32)test_data = np.random.permutation(test_data)xs = tf.placeholder(tf.float32,[None,57*47])#构建autoencoder神经网络encoder0 = tf.layers.dense(xs,512,tf.nn.tanh)encoder1 = tf.layers.dense(encoder0,128,tf.nn.tanh)encoder2 = tf.layers.dense(encoder1,64,tf.nn.tanh)encoder3 = tf.layers.dense(encoder2,10)decoder0 = tf.layers.dense(encoder3,64,tf.nn.tanh)decoder1 = tf.layers.dense(decoder0,128,tf.nn.tanh)decoder2 = tf.layers.dense(decoder1,512,tf.nn.tanh)decoder3 = tf.layers.dense(decoder2,57*47,tf.nn.sigmoid)#计算lossloss = tf.losses.mean_squared_error(labels=xs,predictions=decoder3)train = tf.train.AdamOptimizer(learning_rate).minimize(loss)with tf.Session() as sess: init = tf.global_variables_initializer() sess.run(init) #画图plt.subplots fig,a = plt.subplots(2,N_pictures,figsize=(6,4)) #开始交互模式 plt.ion() view_figures = test_data[:N_pictures] for i in range(N_pictures): #将测试的真实的图显示 a[0][i].imshow(np.reshape(view_figures[i],(57,47))) #清空坐标轴 a[0][i].set_xticks(()) a[0][i].set_yticks(()) for step in range(1000): _,encoderd,decodered,c = sess.run([train,encoder3,decoder3,loss],feed_dict={xs:train_data}) if step % 100 ==0: print('= = = = = = > > > > > > step:',int(step/100),'train loss: %.4f'%c) #将测试集中真实图片作为预测的图片 decoder_figures = sess.run(decoder3,feed_dict={xs:view_figures}) for i in range(N_pictures): #清除第二行第i张图片 a[1][i].clear() a[1][i].imshow(np.reshape(decoder_figures[i],(57,47))) a[1][i].set_xticks(()) a[1][i].set_yticks(()) plt.show() plt.pause(1) #关闭交互模式 plt.ioff()
结果
由于使用的数据集太小,训练的效果一般,但也能看到脸的基本轮廓了
开始:
训练1000epochs:
训练3000epochs:
阅读全文
0 0
- tensorflow1.1/autoencoder人脸识别
- tensorflow1.1/variational autoencoder人脸识别
- tensorflow1.1/构建卷积神经网络人脸识别
- tensorflow1.1/人脸识别Yale数据集
- tensorflow1.1/构建双向神经网络识别mnist
- tensorflow1.1/构建卷积神经网络识别文本
- tensorflow1.1/构建深度卷积神经网络识别物体识别
- tensorflow1.1/构建卷积神经网络识别手写数字
- tensorflow1.1/循环神经网络手写数字啊识别
- python3/tensorflow1.1
- tensorflow1.1/线性回归
- tensorflow1.1/optimizer可视化
- tensorflow1.1/tensorboard可视化
- tensorflow1.1/autoencoder2
- tensorflow1.1/variational_autoencoder
- tensorflow1.1/embedding可视化
- tensorflow1.1/RNN预测
- Sparse AutoEncoder (1)
- tornado和sqlalchemy结合使用
- Fragment系列之Can not perform this action after onSaveInstanceState
- jquery treeview初始化时收缩全部节点并显示指定节点
- NodeJS、NPM安装配置步骤(windows版本)
- DoTween的使用与详解
- tensorflow1.1/autoencoder人脸识别
- 谷歌搜索技巧
- Web服务器使用JSP来创建网页的步骤
- Centos 6.5 安装Oracle 12C RAC
- Python的模块引用和查找路径
- bat批处理
- Java—解析properties文件
- thinkphp自动验证---$_validate
- HDU 5067 Harry And Dig Machine(动态规划+位运算)【双调欧几里得类模板】