Advertisement
Guest User

Untitled

a guest
Jun 27th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. # coding: utf-8
  2.  
  3. import numpy as np
  4. import tensorflow as tf
  5. import matplotlib.pyplot as plt
  6. rng = np.random
  7.  
  8. #Params
  9. learning_rate = 0.01
  10. training_epochs = 2000
  11. display_step = 50
  12.  
  13. #Create Training Data
  14. n_samples = 20
  15. train_X1 = rng.binomial(1,0.5,size=n_samples)
  16. train_X2 = rng.binomial(1,0.3,size=n_samples)
  17. train_X3 = rng.normal(1,1,n_samples)
  18. W1_real = rng.normal(10,1)
  19. W2_real = rng.normal(-3,1)
  20. W3_real = rng.normal(10,1)
  21. b_real = rng.normal(10,1)
  22. rand = rng.randn(n_samples)
  23. train_Y = W1_real*train_X1 + W2_real*train_X2 + W3_real*train_X3 + b_real + rand
  24.  
  25. #Define Graph Input
  26. X1 = tf.placeholder("float")
  27. X2 = tf.placeholder("float")
  28. X3 = tf.placeholder("float")
  29. Y = tf.placeholder("float")
  30.  
  31. W1 = tf.Variable(rng.randn(), name="weight1")
  32. W2 = tf.Variable(rng.randn(), name="weight2")
  33. W3 = tf.Variable(rng.randn(), name="weight3")
  34. b = tf.Variable(rng.randn(), name="bias")
  35.  
  36. #Construct Linear Model
  37. sum_list = [tf.mul(X1,W1),tf.mul(X2,W2),tf.mul(X3,W3)] #pred = W1*X1+W2*X2+W3*X3+b
  38. pred_X = tf.add_n(sum_list)
  39. pred = tf.add(pred_X,b)
  40.  
  41. #MSE
  42. cost = tf.reduce_sum(tf.pow(pred-Y,2))/(2*n_samples)
  43.  
  44. #Gradient Descent
  45. optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
  46.  
  47. init = tf.initialize_all_variables()
  48.  
  49. #Launch the Graph
  50. with tf.Session() as session:
  51. session.run(init)
  52.  
  53. for epoch in range(training_epochs):
  54. for (x1,x2,x3,y) in zip(train_X1,train_X2,train_X3,train_Y):
  55. session.run(optimizer, feed_dict={X1: x1, X2: x2, X3: x3, Y: y})
  56.  
  57. #Display Logs per each steps
  58. if (epoch+1) % display_step==0:
  59. c = session.run(cost, feed_dict={X1: train_X1, X2: train_X2, X3: train_X3, Y: train_Y})
  60. print "Epoch:", '%04d' % (epoch+1), "cost=", "{:.9f}".format(c), \
  61. "W1=",session.run(W1),"W2=",session.run(W2),"W3=",session.run(W3),"b=",session.run(b)
  62.  
  63. print "Optimization Finished!"
  64. training_cost = session.run(cost,feed_dict={X1: train_X1, X2: train_X2, X3: train_X3, Y: train_Y})
  65. print "training_cost=",training_cost
  66. print "Results: predicted value (true value)"
  67. print "W1=",session.run(W1),"(",W1_real,")"
  68. print "W2=",session.run(W2),"(",W2_real,")"
  69. print "W3=",session.run(W3),"(",W3_real,")"
  70. print "b=",session.run(b),"(",b_real,")",'\n'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement