diff --git a/04 - Neural Network Basic/02 - Deep NN.py b/04 - Neural Network Basic/02 - Deep NN.py index 677aba22..3d6c9cc7 100644 --- a/04 - Neural Network Basic/02 - Deep NN.py +++ b/04 - Neural Network Basic/02 - Deep NN.py @@ -44,7 +44,7 @@ # 텐서플로우에서 기본적으로 제공되는 크로스 엔트로피 함수를 이용해 # 복잡한 수식을 사용하지 않고도 최적화를 위한 비용 함수를 다음처럼 간단하게 적용할 수 있습니다. cost = tf.reduce_mean( - tf.nn.softmax_cross_entropy_with_logits(labels=Y, logits=model)) + tf.nn.softmax_cross_entropy_with_logits_v2(labels=Y, logits=model)) optimizer = tf.train.AdamOptimizer(learning_rate=0.01) train_op = optimizer.minimize(cost) diff --git a/05 - TensorBoard, Saver/01 - Saver.py b/05 - TensorBoard, Saver/01 - Saver.py index 046e868a..8178be18 100644 --- a/05 - TensorBoard, Saver/01 - Saver.py +++ b/05 - TensorBoard, Saver/01 - Saver.py @@ -33,7 +33,7 @@ model = tf.matmul(L2, W3) cost = tf.reduce_mean( - tf.nn.softmax_cross_entropy_with_logits(labels=Y, logits=model)) + tf.nn.softmax_cross_entropy_with_logits_v2(labels=Y, logits=model)) optimizer = tf.train.AdamOptimizer(learning_rate=0.01) # global_step로 넘겨준 변수를, 학습용 변수들을 최적화 할 때 마다 학습 횟수를 하나씩 증가시킵니다. diff --git a/05 - TensorBoard, Saver/02 - TensorBoard.py b/05 - TensorBoard, Saver/02 - TensorBoard.py index 4a9693be..15fa114d 100644 --- a/05 - TensorBoard, Saver/02 - TensorBoard.py +++ b/05 - TensorBoard, Saver/02 - TensorBoard.py @@ -34,7 +34,7 @@ with tf.name_scope('optimizer'): cost = tf.reduce_mean( - tf.nn.softmax_cross_entropy_with_logits(labels=Y, logits=model)) + tf.nn.softmax_cross_entropy_with_logits_v2(labels=Y, logits=model)) optimizer = tf.train.AdamOptimizer(learning_rate=0.01) train_op = optimizer.minimize(cost, global_step=global_step) diff --git a/05 - TensorBoard, Saver/03 - TensorBoard2.py b/05 - TensorBoard, Saver/03 - TensorBoard2.py index 9eb69d5d..3d7f95ed 100644 --- a/05 - TensorBoard, Saver/03 - TensorBoard2.py +++ b/05 - TensorBoard, Saver/03 - TensorBoard2.py @@ -37,7 +37,7 @@ with tf.name_scope('optimizer'): cost = tf.reduce_mean( - tf.nn.softmax_cross_entropy_with_logits(labels=Y, logits=model)) + tf.nn.softmax_cross_entropy_with_logits_v2(labels=Y, logits=model)) optimizer = tf.train.AdamOptimizer(learning_rate=0.01) train_op = optimizer.minimize(cost, global_step=global_step) diff --git a/06 - MNIST/01 - MNIST.py b/06 - MNIST/01 - MNIST.py index ecf92127..2848fd2e 100644 --- a/06 - MNIST/01 - MNIST.py +++ b/06 - MNIST/01 - MNIST.py @@ -32,7 +32,7 @@ # 최종 모델의 출력값은 W3 변수를 곱해 10개의 분류를 가지게 됩니다. model = tf.matmul(L2, W3) -cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=model, labels=Y)) +cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(logits=model, labels=Y)) optimizer = tf.train.AdamOptimizer(0.001).minimize(cost) ######### diff --git a/06 - MNIST/02 - Dropout.py b/06 - MNIST/02 - Dropout.py index 9e2af621..1d9c4310 100644 --- a/06 - MNIST/02 - Dropout.py +++ b/06 - MNIST/02 - Dropout.py @@ -26,7 +26,7 @@ W3 = tf.Variable(tf.random_normal([256, 10], stddev=0.01)) model = tf.matmul(L2, W3) -cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=model, labels=Y)) +cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(logits=model, labels=Y)) optimizer = tf.train.AdamOptimizer(0.001).minimize(cost) ######### diff --git a/07 - CNN/01 - CNN.py b/07 - CNN/01 - CNN.py index 415f5a18..4c1c2ab2 100644 --- a/07 - CNN/01 - CNN.py +++ b/07 - CNN/01 - CNN.py @@ -48,7 +48,7 @@ W4 = tf.Variable(tf.random_normal([256, 10], stddev=0.01)) model = tf.matmul(L3, W4) -cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=model, labels=Y)) +cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(logits=model, labels=Y)) optimizer = tf.train.AdamOptimizer(0.001).minimize(cost) # 최적화 함수를 RMSPropOptimizer 로 바꿔서 결과를 확인해봅시다. # optimizer = tf.train.RMSPropOptimizer(0.001, 0.9).minimize(cost) diff --git a/07 - CNN/02 - tf.layers.py b/07 - CNN/02 - tf.layers.py index 9682fb3b..6c60a8f1 100644 --- a/07 - CNN/02 - tf.layers.py +++ b/07 - CNN/02 - tf.layers.py @@ -18,11 +18,11 @@ # 활성화 함수 적용은 물론, 컨볼루션 신경망을 만들기 위한 나머지 수치들은 알아서 계산해줍니다. # 특히 Weights 를 계산하는데 xavier_initializer 를 쓰고 있는 등, # 크게 신경쓰지 않아도 일반적으로 효율적인 신경망을 만들어줍니다. -L1 = tf.layers.conv2d(X, 32, [3, 3]) +L1 = tf.layers.conv2d(X, 32, [3, 3], activation=tf.nn.relu) L1 = tf.layers.max_pooling2d(L1, [2, 2], [2, 2]) L1 = tf.layers.dropout(L1, 0.7, is_training) -L2 = tf.layers.conv2d(L1, 64, [3, 3]) +L2 = tf.layers.conv2d(L1, 64, [3, 3], activation=tf.nn.relu) L2 = tf.layers.max_pooling2d(L2, [2, 2], [2, 2]) L2 = tf.layers.dropout(L2, 0.7, is_training) @@ -32,7 +32,7 @@ model = tf.layers.dense(L3, 10, activation=None) -cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=model, labels=Y)) +cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(logits=model, labels=Y)) optimizer = tf.train.AdamOptimizer(0.001).minimize(cost) ######### diff --git a/10 - RNN/01 - MNIST.py b/10 - RNN/01 - MNIST.py index 314ea6d8..035bb1a5 100644 --- a/10 - RNN/01 - MNIST.py +++ b/10 - RNN/01 - MNIST.py @@ -54,7 +54,7 @@ outputs = outputs[-1] model = tf.matmul(outputs, W) + b -cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=model, labels=Y)) +cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(logits=model, labels=Y)) optimizer = tf.train.AdamOptimizer(learning_rate).minimize(cost) ######### diff --git a/10 - RNN/02 - Autocomplete.py b/10 - RNN/02 - Autocomplete.py index f8107138..4758fa16 100644 --- a/10 - RNN/02 - Autocomplete.py +++ b/10 - RNN/02 - Autocomplete.py @@ -70,13 +70,16 @@ def make_batch(seq_data): # 기존처럼 one-hot 인코딩을 사용한다면 입력값의 형태는 [None, n_class] 여야합니다. Y = tf.placeholder(tf.int32, [None]) +# dropout prob for RNN +keep_prob = tf.placeholder(tf.float32, []) + W = tf.Variable(tf.random_normal([n_hidden, n_class])) b = tf.Variable(tf.random_normal([n_class])) # RNN 셀을 생성합니다. cell1 = tf.nn.rnn_cell.BasicLSTMCell(n_hidden) # 과적합 방지를 위한 Dropout 기법을 사용합니다. -cell1 = tf.nn.rnn_cell.DropoutWrapper(cell1, output_keep_prob=0.5) +cell1 = tf.nn.rnn_cell.DropoutWrapper(cell1, output_keep_prob=keep_prob) # 여러개의 셀을 조합해서 사용하기 위해 셀을 추가로 생성합니다. cell2 = tf.nn.rnn_cell.BasicLSTMCell(n_hidden) @@ -108,7 +111,9 @@ def make_batch(seq_data): for epoch in range(total_epoch): _, loss = sess.run([optimizer, cost], - feed_dict={X: input_batch, Y: target_batch}) + feed_dict={X: input_batch, + Y: target_batch, + keep_prob: 0.5}) print('Epoch:', '%04d' % (epoch + 1), 'cost =', '{:.6f}'.format(loss)) @@ -127,7 +132,9 @@ def make_batch(seq_data): input_batch, target_batch = make_batch(seq_data) predict, accuracy_val = sess.run([prediction, accuracy], - feed_dict={X: input_batch, Y: target_batch}) + feed_dict={X: input_batch, + Y: target_batch, + keep_prob:1}) predict_words = [] for idx, val in enumerate(seq_data): diff --git a/11 - Inception/retrain.py b/11 - Inception/retrain.py index c676c7bd..358f49e2 100644 --- a/11 - Inception/retrain.py +++ b/11 - Inception/retrain.py @@ -722,7 +722,7 @@ def add_final_training_ops(class_count, final_tensor_name, bottleneck_tensor): tf.summary.histogram('activations', final_tensor) with tf.name_scope('cross_entropy'): - cross_entropy = tf.nn.softmax_cross_entropy_with_logits( + cross_entropy = tf.nn.softmax_cross_entropy_with_logits_v2( labels=ground_truth_input, logits=logits) with tf.name_scope('total'): cross_entropy_mean = tf.reduce_mean(cross_entropy) diff --git a/12 - DQN/game.py b/12 - DQN/game.py index 48a9e889..d4043c58 100644 --- a/12 - DQN/game.py +++ b/12 - DQN/game.py @@ -73,7 +73,7 @@ def _draw_screen(self): self.current_reward, self.total_game) - self.axis.clear() + # self.axis.clear() self.axis.set_title(title, fontsize=12) road = patches.Rectangle((self.road_left - 1, 0), diff --git a/README.md b/README.md index 3fcf675b..935cff36 100644 --- a/README.md +++ b/README.md @@ -14,13 +14,11 @@ ## 요구사항 -- TensorFlow >= 1.2 -- Python >= 3.6 - - numpy >= 1.12 - - matplotlib >= 2.0 - - pillow >= 4.1 - -※ ChatBot은 수정/확인 중 입니다. +- TensorFlow >= 1.8.0 +- Python >= 3.6.1 + - numpy >= 1.14.3 + - matplotlib >= 2.2.2 + - pillow >= 5.1 ## 골빈해커의 3분 딥러닝