# coding=utf-8
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]='2' # 只显示 warning 和 Error ###data (50000,784),(1000,784),(1000,784):
import pickle
import gzip
import numpy as npdef load_data():f = gzip.open('../data/mnist.pkl.gz', 'rb')training_data, validation_data, test_data = pickle.load(f,encoding='bytes')f.close()return (training_data, validation_data, test_data)def vectorized_result(j):e = np.zeros(10)e[j] = 1.0return etraining_data, validation_data, test_data = load_data()
trainData_in=training_data[0][:50000]
trainData_out=[vectorized_result(j) for j in training_data[1][:50000]]
validData_in=validation_data[0]
validData_out=[vectorized_result(j) for j in validation_data[1]]
testData_in=test_data[0][:100]
testData_out=[vectorized_result(j) for j in test_data[1][:100]]###自编码降维net 784X256X128X256X784:
import tensorflow as tf
import matplotlib.pyplot as pltLEAEING_RATE=0.01
TRAINING_EPOCHS=30
BATCH_SIZE=100
DISPLAY_STEP=1
EXAMPLES_TO_SHOW=8
NUM_INPUT=784
NUM_ENCODER1=256
NUM_ENCODER2=128x_input=tf.placeholder(tf.float32, [None,NUM_INPUT], name='x_input_noisy')
y_desired=tf.placeholder(tf.float32, [None,NUM_INPUT], name='y_ouput_no_noisy')
weights={'we1':tf.Variable(tf.random_normal([NUM_INPUT,NUM_ENCODER1])),\'we2':tf.Variable(tf.random_normal([NUM_ENCODER1,NUM_ENCODER2])),\'wd1':tf.Variable(tf.random_normal([NUM_ENCODER2,NUM_ENCODER1])),\'wd2':tf.Variable(tf.random_normal([NUM_ENCODER1,NUM_INPUT]))}biases={'be1':tf.Variable(tf.random_normal([NUM_ENCODER1])),\'be2':tf.Variable(tf.random_normal([NUM_ENCODER2])),\'bd1':tf.Variable(tf.random_normal([NUM_ENCODER1])),\'bd2':tf.Variable(tf.random_normal([NUM_INPUT]))}encoder1=tf.nn.sigmoid(tf.add(tf.matmul(x_input,weights['we1']),biases['be1']))
encoder2=tf.nn.sigmoid(tf.add(tf.matmul(encoder1,weights['we2']),biases['be2']))
decoder1=tf.nn.sigmoid(tf.add(tf.matmul(encoder2,weights['wd1']),biases['bd1']))
y_output=tf.nn.sigmoid(tf.add(tf.matmul(decoder1,weights['wd2']),biases['bd2']))
loss_se=tf.reduce_mean(tf.pow(y_desired-y_output,2))
optimizer=tf.train.RMSPropOptimizer(LEAEING_RATE).minimize(loss_se)
init=tf.global_variables_initializer()
with tf.Session() as sess:sess.run(init)num_batches=int(len(trainData_in)/BATCH_SIZE)for epoch in range(TRAINING_EPOCHS):for i in range(num_batches):batch_x=trainData_in[i*BATCH_SIZE:(i+1)*BATCH_SIZE]batch_x_noisy=batch_x+0.3*np.random.randn(BATCH_SIZE,784)_,cost=sess.run([optimizer,loss_se],feed_dict={x_input:batch_x_noisy,\y_desired:batch_x})if epoch % DISPLAY_STEP ==0:print('Epoch:%04d'%epoch,'cost={:.9f}'.format(cost))print('Opitimization Finished!')testData_in_noisy_show=testData_in[:EXAMPLES_TO_SHOW]+0.3*np.random.randn(EXAMPLES_TO_SHOW,784)y_decode_test=sess.run(y_output,feed_dict={x_input:testData_in_noisy_show})f,a=plt.subplots(2,8,figsize=(10,3))
for i in range(EXAMPLES_TO_SHOW):a[0][i].imshow(np.reshape(testData_in_noisy_show[i],(28,28)))a[1][i].imshow(np.reshape(y_decode_test[i],(28,28)))
f.show()
plt.draw()
plt.show()

TensorFlow第十二步 自编码器去噪降维相关推荐

  1. 十二步解N-S方程之第四步

    2019独角兽企业重金招聘Python工程师标准>>> 十二步解N-S方程之第四步 通过前面的学习,我们已经知道如何去解线性和非线性的一维对流方程,而且也知道CFL是如何影响数值求解 ...

  2. 在浏览器中进行深度学习:TensorFlow.js (十二)异常检测算法

    2019独角兽企业重金招聘Python工程师标准>>> 异常检测是机器学习领域常见的应用场景,例如金融领域里的信用卡欺诈,企业安全领域里的非法入侵,IT运维里预测设备的维护时间点等. ...

  3. 【C语言】二十二步了解函数栈帧(压栈、传参、返回、弹栈)

    阅读本文需要掌握的知识 熟练使用--c语言函数 进入正题前 首先我们为什么要学习函数的栈帧? 简单回答就是:增加内功 学习函数调用的底层代码,了解函数如何传参.如何返回 这样对于函数的使用有很大的帮助 ...

  4. 十二步创建你的第一个JavaScript库

    是否曾对Mootools的魔力感到惊奇?是否有想知道Dojo如何做到那样的?是否对jQuery感到好奇?在这个教程中,我们将了解它们背后的东西并且动手创建一个超级简单的你最喜欢的库. 我们其乎每天都在 ...

  5. 2021-12-23 迈向程序员的第五十二步

    目录 一.rowkey设计原则 1.1 唯一原则 1.2 长度原则 1.3 散列原则 二.Hbase优化实操 2.1 高可用 2.2 预分区 2.3 RowKey设计(记忆) 2.4 内存优化 2.5 ...

  6. STM32学习100步之第四十七-四十八步——旋转编码器驱动程序

    旋转编码器 旋转编码器是一种可以左右旋转,同时也可以按下,也可以按下旋转的器件,通过左右旋转对应着内部不同开关的导通,同时按下也可以旋转,由此看来旋转编码器可以实现很复杂的功能,简单的通过左右旋转可以 ...

  7. STM32学习100步之第三十二步——MIDI音乐程序

    什么是MIDI音乐 MIDI音乐的产生原理 编写MIDI音乐 代码解读 什么是MIDI音乐 HIDI(Musical Instrument Digital Interface)乐器数字接口 是20世纪 ...

  8. [转载]十四步实现拥有强大AI的五子棋游戏

    又是本人一份人工智能作业--首先道歉,从Word贴到Livewrter,好多格式没了,也没做代码高亮--大家凑活着看--想做个好的人机对弈的五子棋,可以说需要考虑的问题还是很多的,我们将制作拥有强大A ...

  9. 教你 P 照片:十五步把一张普通照片处理得很有质感

    http://daily.zhihu.com/story/2695720 如何把人像照片处理得这么有质感?  eno-one,广告/电商/营销 5 年没拍照,上礼拜去影棚,蹭了一张照片,回家各种 P. ...

最新文章

  1. Java中获取路径的各种方法
  2. golang 的AES加解密 (CBC/ECB/CFB 模式)
  3. 2018-11-25
  4. mysql删除了密码怎样恢复_window 下如何恢复被删除的mysql root账户及密码(mysql 8.0.17)...
  5. mac包安装kafka
  6. django-celery
  7. Apache Camel 2.14中的更多指标
  8. Leetcode--7. 整数反转
  9. JS中var和let
  10. 我想加入阿里,我该怎么做?
  11. 据我爱无人机网-英国政府向无人机研发项目提供3000万资助
  12. [COGS 2479] [HZOI 2016] 偏序
  13. 基于Vue实现动态组织结构图
  14. springboot记录用户访问次数_Spring Boot入门(12)实现页面访问量统计功能
  15. 小米 解析软件包时出现问题 解决
  16. macOS app动态修改app图标,图标为icns格式
  17. React-bootstrap 中文文档
  18. 前端背景图放置_CSS 背景图片排版
  19. MySQL存储生僻字解决方案
  20. 小酌重构系列[18]——重命名

热门文章

  1. Centos 监控进程,并自动重启
  2. Serverless 实战 —— Serverless + Egg.js 后台管理系统实战
  3. DreamFactory入门指南
  4. Primefaces,Spring 4 with JPA(Hibernate 4 / EclipseLink)示例教程
  5. leetcode| 94. 二叉树的中序遍历
  6. rpm | 升级软件包
  7. 刷新echart控件
  8. 【Java】求100以内的斐波那契数列
  9. 风变编程课 囚徒困境 答案_当您对所有这些有用的在线编程课程感到不知所措时,如何摆脱困境...
  10. 阿里大鱼php发送短信,阿里大鱼短信发送PHP代码