"""
Please note, this code is only for python 3+. If you are using python 2+, please modify the code accordingly.
"""
import tensorflow as tf
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelBinarizer # load data
digits = load_digits()
X = digits.data
y = digits.target
y = LabelBinarizer().fit_transform(y)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.3) def add_layer(inputs, in_size, out_size, layer_name, activation_function=None, ):
# add one more layer and return the output of this layer
Weights = tf.Variable(tf.random_normal([in_size, out_size]))
biases = tf.Variable(tf.zeros([1, out_size]) + 0.1, )
Wx_plus_b = tf.matmul(inputs, Weights) + biases
# here to dropout
Wx_plus_b = tf.nn.dropout(Wx_plus_b, keep_prob)
if activation_function is None:
outputs = Wx_plus_b
else:
outputs = activation_function(Wx_plus_b, )
return outputs def compute_accuracy(v_xs,v_ys,v_keep_prob):
global prediction
y_pre = sess.run(prediction,feed_dict={xs:v_xs,keep_prob:v_keep_prob})
correct_prediction = tf.equal(tf.argmax(y_pre,1),tf.argmax(v_ys,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
result = sess.run(accuracy,feed_dict={xs:v_xs,ys:v_ys,keep_prob:v_keep_prob})
return result # define placeholder for inputs to network
keep_prob = tf.placeholder(tf.float32)
xs = tf.placeholder(tf.float32, [None, 64]) # 8x8
ys = tf.placeholder(tf.float32, [None, 10]) # add output layer
l1 = add_layer(xs, 64, 50, 'l1', activation_function=tf.nn.tanh)
prediction = add_layer(l1, 50, 10, 'l2', activation_function=tf.nn.softmax) # the loss between prediction and real data
cross_entropy = tf.reduce_mean(-tf.reduce_sum(ys * tf.log(prediction),
reduction_indices=[1])) # loss
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy) sess = tf.Session()
sess.run(tf.initialize_all_variables()) for i in range(500):
# here to determine the keeping probability
sess.run(train_step, feed_dict={xs: X_train, ys: y_train, keep_prob: 0.5})
if i % 50 == 0:
print(compute_accuracy(X_train, y_train,1),compute_accuracy(X_test, y_test,1))

  

最新文章

  1. Linux下UPnP sample分析
  2. 第一章-第十三题(该游戏团队, 有很好的软件,但是商业模式和其他软件之外的因素有没有考虑到?)--By梁旭晖
  3. 用javascript实现一个2048游戏
  4. 使用 Visual Studio Online 进行协同开发
  5. PHP中函数sprintf .vsprintf (占位符)
  6. ionic介绍
  7. Java学习-028-JSON 之二 -- 数据读取
  8. iframe 跨域自适应 纯css解决方法
  9. ARM开发板系统移植-----rootfs的制作
  10. SQL语句操作大全
  11. 括号匹配问题(C++、堆栈)
  12. intersect for multiple vectors in R
  13. 【BZOJ2527】MET-Meteors(整体二分)
  14. SequoiaDB 巨杉数据库
  15. mathematics of deep learning (paper reading)
  16. springmvc跳转到自定义404页面的三种方法
  17. vmware NAT 网络出现问题的解决方法
  18. Python2.7-pprint
  19. JAVA设计模式——第 2 章 代理模式【Proxy Pattern】(转)
  20. Python爬虫Urllib库的基本使用

热门文章

  1. vscode下搭建typescript时提示"无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称"错误的解决方法
  2. Spring Framework之IoC容器
  3. SVN同步代码问题集锦
  4. js对象中in和hasOwnProperty()区别
  5. UnboundLocalError,探讨Python中的绑定
  6. 记python 链式比较的坑
  7. Android AndroidManifest.xml详解
  8. css3新的选择器
  9. wireshark抓包实战(八),专家分析
  10. 【第一章】黎姿的python学习笔记