Advertisement
Guest User

Untitled

a guest
May 25th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. #coding: utf-8
  2. import tensorflow as tf
  3. import random
  4.  
  5.  
  6. #-メイン文-#
  7. if __name__ == "__main__":
  8. ##モデルの定義を行う
  9. #入力層
  10. #任意のユニット数の入力層から3層への結合
  11. _x = tf.placeholder(tf.float32,[None,3])
  12. #ネットワークの重み
  13. W1 = tf.Variable(tf.zeros([3, 1]))
  14. #バイアス項
  15. b1 = tf.Variable(tf.zeros([1]))
  16. #行列の計算
  17. y = tf.matmul(_x, W1) + b1
  18.  
  19. ##誤差関数及び学習器の設定を行う
  20. #正解の値を格納するplaceholderを作成
  21. _y = tf.placeholder(tf.float32,[None,1])
  22. #誤差関数の設定
  23. loss = tf.reduce_sum((tf.square(_y - y)))
  24. #学習器及び学習率の設定
  25. train_step = tf.train.AdamOptimizer().minimize(loss)
  26. #定義した全ての変数を初期化
  27. init = tf.initialize_all_variables()
  28.  
  29.  
  30. ####################
  31. # 訓練データ作成
  32. # 入力:3つの整数a,b,c
  33. # 出力:a+2b+3c+4
  34. ####################
  35. x_train = []
  36. y_train = []
  37. x_test = []
  38. y_test = []
  39. tmp = []
  40. # 訓練データの作成
  41. for i in range(1000):
  42. for j in range(3):
  43. tmp.append(random.randint(1, 1000))
  44. x_train.append(tmp)
  45. y_train.append([tmp[0] + 2 * tmp[1] + 3 * tmp[2] + 4])
  46. tmp = []
  47.  
  48. #-セッションの開始-#
  49. with tf.Session() as sess:
  50. sess.run(init)
  51. print "初期状態"
  52. print '誤差' + str(sess.run(loss, feed_dict={_x: x_train, _y: y_train}))
  53.  
  54. for step in range(40000):
  55. #100回周期で誤差を表示
  56. if step % 100 == 0:
  57. sess.run(train_step, feed_dict={_x: x_train, _y: y_train})
  58. print '\nStep: %s' % (step)
  59. print '誤差' + str(sess.run(loss, feed_dict={_x:x_train, _y:y_train}))
  60. else:
  61. sess.run(train_step, feed_dict={_x: x_train, _y: y_train})
  62.  
  63. print "予測結果"
  64. print sess.run(y,feed_dict={_x:[[3,4,5]]})#答えは26
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement