From d4dffc870c617536960d37908c19cbbfd8f1d32f Mon Sep 17 00:00:00 2001 From: Yongkyun Lee <2dragonvirus@gmail.com> Date: 2017年12月22日 23:29:13 +0900 Subject: [PATCH 1/3] 02 - Variable.py Style change MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sess을 직접 열고 닫는 것보다 with을 활용해서 하는 것이 파이선 코딩 스타일에 더 맞는 것 같습니다. 참고: https://google.github.io/styleguide/pyguide.html Files and Sockets 섹션 --- 03 - TensorFlow Basic/02 - Variable.py | 30 ++++++++++++-------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/03 - TensorFlow Basic/02 - Variable.py b/03 - TensorFlow Basic/02 - Variable.py index 4af8c31f..9a1b535e 100644 --- a/03 - TensorFlow Basic/02 - Variable.py +++ b/03 - TensorFlow Basic/02 - Variable.py @@ -19,20 +19,18 @@ # tf.matmul 처럼 mat* 로 되어 있는 함수로 행렬 계산을 수행합니다. expr = tf.matmul(X, W) + b -sess = tf.Session() -# 위에서 설정한 Variable 들의 값들을 초기화 하기 위해 -# 처음에 tf.global_variables_initializer 를 한 번 실행해야 합니다. -sess.run(tf.global_variables_initializer()) +with tf.Session() as sess: + # 위에서 설정한 Variable 들의 값들을 초기화 하기 위해 + # 처음에 tf.global_variables_initializer 를 한 번 실행해야 합니다. + sess.run(tf.global_variables_initializer()) -print("=== x_data ===") -print(x_data) -print("=== W ===") -print(sess.run(W)) -print("=== b ===") -print(sess.run(b)) -print("=== expr ===") -# expr 수식에는 X 라는 입력값이 필요합니다. -# 따라서 expr 실행시에는 이 변수에 대한 실제 입력값을 다음처럼 넣어줘야합니다. -print(sess.run(expr, feed_dict={X: x_data})) - -sess.close() + print("=== x_data ===") + print(x_data) + print("=== W ===") + print(sess.run(W)) + print("=== b ===") + print(sess.run(b)) + print("=== expr ===") + # expr 수식에는 X 라는 입력값이 필요합니다. + # 따라서 expr 실행시에는 이 변수에 대한 실제 입력값을 다음처럼 넣어줘야합니다. + print(sess.run(expr, feed_dict={X: x_data})) From ace5a79c59077f8c05770f8fef31c8da2634b43a Mon Sep 17 00:00:00 2001 From: Yongkyun Lee <2dragonvirus@gmail.com> Date: 2017年12月22日 23:32:02 +0900 Subject: [PATCH 2/3] 02 - Variable.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X의 차원은 ? * 3 이고 W의 차원은 3 * 2 이기 때문에 X * W의 차원은 ? * 2 가 됩니다. bias는 X * W의 각 행에 더해져야 하기 때문에 b의 차원은 1 * 2 이어야 합니다. --- 03 - TensorFlow Basic/02 - Variable.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/03 - TensorFlow Basic/02 - Variable.py b/03 - TensorFlow Basic/02 - Variable.py index 9a1b535e..73988699 100644 --- a/03 - TensorFlow Basic/02 - Variable.py +++ b/03 - TensorFlow Basic/02 - Variable.py @@ -13,7 +13,7 @@ # tf.Variable: 그래프를 계산하면서 최적화 할 변수들입니다. 이 값이 바로 신경망을 좌우하는 값들입니다. # tf.random_normal: 각 변수들의 초기값을 정규분포 랜덤 값으로 초기화합니다. W = tf.Variable(tf.random_normal([3, 2])) -b = tf.Variable(tf.random_normal([2, 1])) +b = tf.Variable(tf.random_normal([1, 2])) # 입력값과 변수들을 계산할 수식을 작성합니다. # tf.matmul 처럼 mat* 로 되어 있는 함수로 행렬 계산을 수행합니다. From 1d26b9319ff69de0a79185492f096e35c8a897bd Mon Sep 17 00:00:00 2001 From: Yongkyun Lee <2dragonvirus@gmail.com> Date: 2017年12月23日 11:35:29 +0900 Subject: [PATCH 3/3] Explicit dimension expression and print format Explicit expression of dimension. Use format instead of % for print --- 04 - Neural Network Basic/02 - Deep NN.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/04 - Neural Network Basic/02 - Deep NN.py b/04 - Neural Network Basic/02 - Deep NN.py index 677aba22..3dcd06d4 100644 --- a/04 - Neural Network Basic/02 - Deep NN.py +++ b/04 - Neural Network Basic/02 - Deep NN.py @@ -20,8 +20,8 @@ ######### # 신경망 모델 구성 ###### -X = tf.placeholder(tf.float32) -Y = tf.placeholder(tf.float32) +X = tf.placeholder(tf.float32, [None, 2]) +Y = tf.placeholder(tf.float32, [None, 3]) # 첫번째 가중치의 차원은 [특성, 히든 레이어의 뉴런갯수] -> [2, 10] 으로 정합니다. W1 = tf.Variable(tf.random_uniform([2, 10], -1., 1.)) @@ -75,4 +75,4 @@ is_correct = tf.equal(prediction, target) accuracy = tf.reduce_mean(tf.cast(is_correct, tf.float32)) -print('정확도: %.2f' % sess.run(accuracy * 100, feed_dict={X: x_data, Y: y_data})) +print('정확도: {:.2f}'.format(sess.run(accuracy * 100, feed_dict={X: x_data, Y: y_data})))