Guest User

Untitled

a guest
Jun 25th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. # from tensorflow.examples.tutorials.mnist import input_data
  2. import tensorflow as tf
  3. import numpy as np
  4. from sklearn.datasets import load_digits
  5. from sklearn.model_selection import train_test_split
  6. from sklearn.preprocessing import LabelBinarizer
  7.  
  8. # load data
  9. digits = load_digits()
  10. X = digits.data
  11. y = digits.target
  12. y = LabelBinarizer().fit_transform(y)
  13. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.3)
  14.  
  15.  
  16.  
  17. def add_layer(inputs, in_size, out_size, layer_name, activation_function = None, ):
  18. Weights = tf.Variable(tf.random_normal([in_size, out_size]))
  19. biases = tf.Variable(tf.zeros([1, out_size]) + 0.1)
  20.  
  21. Wx_plus_b = tf.add(tf.matmul(inputs, Weights), biases)
  22. # here to dropout
  23. Wx_plus_b = tf.nn.dropout(Wx_plus_b, keep_prob)
  24.  
  25. if activation_function is None:
  26. outputs = Wx_plus_b
  27. else:
  28. outputs = activation_function(Wx_plus_b,)
  29. tf.summary.histogram(layer_name + '/outputs', outputs)
  30. return outputs
  31.  
  32.  
  33. keep_prob = tf.placeholder(tf.float32)
  34. xs = tf.placeholder(tf.float32, [None, 64])
  35. ys = tf.placeholder(tf.float32, [None, 10])
  36.  
  37. l1 = add_layer(xs, 64, 50, 'l1', activation_function=tf.nn.tanh)
  38. prediction = add_layer(l1, 50, 10, 'l2', activation_function=tf.nn.softmax)
  39.  
  40. cross_entropy = tf.reduce_mean(-tf.reduce_sum(ys * tf.log(prediction),
  41. reduction_indices=[1]))
  42. tf.summary.scalar('loss', cross_entropy)
  43. train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
  44.  
  45. sess = tf.Session()
  46. merged = tf.summary.merge_all()
  47.  
  48. train_writer = tf.summary.FileWriter('logs/train', sess.graph)
  49. test_writer = tf.summary.FileWriter('logs/test', sess.graph)
  50.  
  51. sess.run(tf.global_variables_initializer())
  52.  
  53. for i in range(500):
  54. sess.run(train_step, feed_dict={xs: X_train, ys: y_train, keep_prob: 0.5})
  55. if i % 50 == 0:
  56. train_result = sess.run(merged, feed_dict={xs: X_train, ys: y_train, keep_prob: 1})
  57. test_result = sess.run(merged, feed_dict={xs: X_test, ys: y_test, keep_prob: 1})
  58. train_writer.add_summary(train_result, i)
  59. test_writer.add_summary(test_result, i)
Add Comment
Please, Sign In to add comment