Skip to content

Commit

Permalink
Update lab-09-4-xor_tensorboard.py (#239)
Browse files Browse the repository at this point in the history
* Update lab-09-4-xor_tensorboard.py

Simplify code and delete unnecessary variables.

* Update lab-09-4-xor_tensorboard.py

Co-Authored-By: qoocrab <qoocrab@gmail.com>

* Update lab-09-4-xor_tensorboard.py

Co-Authored-By: qoocrab <qoocrab@gmail.com>

* Update lab-09-4-xor_tensorboard.py

Co-Authored-By: qoocrab <qoocrab@gmail.com>

* Update lab-09-4-xor_tensorboard.py

Co-Authored-By: qoocrab <qoocrab@gmail.com>

* Update lab-09-4-xor_tensorboard.py

Add f-string output.
  • Loading branch information
qoocrab authored and kkweon committed Jan 14, 2019
1 parent 4af45b7 commit 54d5a6a
Showing 1 changed file with 49 additions and 54 deletions.
103 changes: 49 additions & 54 deletions lab-09-4-xor_tensorboard.py
Expand Up @@ -3,55 +3,45 @@
import numpy as np

tf.set_random_seed(777) # for reproducibility
learning_rate = 0.01

x_data = [[0, 0],
[0, 1],
[1, 0],
[1, 1]]
y_data = [[0],
[1],
[1],
[0]]
x_data = np.array(x_data, dtype=np.float32)
y_data = np.array(y_data, dtype=np.float32)

X = tf.placeholder(tf.float32, [None, 2], name='x-input')
Y = tf.placeholder(tf.float32, [None, 1], name='y-input')

with tf.name_scope("layer1"):
W1 = tf.Variable(tf.random_normal([2, 2]), name='weight1')
b1 = tf.Variable(tf.random_normal([2]), name='bias1')

x_data = np.array([[0, 0], [0, 1], [1, 0], [1, 1]], dtype=np.float32)
y_data = np.array([[0], [1], [1], [0]], dtype=np.float32)

X = tf.placeholder(tf.float32, [None, 2], name="x")
Y = tf.placeholder(tf.float32, [None, 1], name="y")

with tf.name_scope("Layer1"):
W1 = tf.Variable(tf.random_normal([2, 2]), name="weight_1")
b1 = tf.Variable(tf.random_normal([2]), name="bias_1")
layer1 = tf.sigmoid(tf.matmul(X, W1) + b1)

w1_hist = tf.summary.histogram("weights1", W1)
b1_hist = tf.summary.histogram("biases1", b1)
layer1_hist = tf.summary.histogram("layer1", layer1)
tf.summary.histogram("W1", W1)
tf.summary.histogram("b1", b1)
tf.summary.histogram("Layer1", layer1)


with tf.name_scope("layer2"):
W2 = tf.Variable(tf.random_normal([2, 1]), name='weight2')
b2 = tf.Variable(tf.random_normal([1]), name='bias2')
with tf.name_scope("Layer2"):
W2 = tf.Variable(tf.random_normal([2, 1]), name="weight_2")
b2 = tf.Variable(tf.random_normal([1]), name="bias_2")
hypothesis = tf.sigmoid(tf.matmul(layer1, W2) + b2)

w2_hist = tf.summary.histogram("weights2", W2)
b2_hist = tf.summary.histogram("biases2", b2)
hypothesis_hist = tf.summary.histogram("hypothesis", hypothesis)
tf.summary.histogram("W2", W2)
tf.summary.histogram("b2", b2)
tf.summary.histogram("Hypothesis", hypothesis)

# cost/loss function
with tf.name_scope("cost"):
cost = -tf.reduce_mean(Y * tf.log(hypothesis) + (1 - Y) *
tf.log(1 - hypothesis))
cost_summ = tf.summary.scalar("cost", cost)
with tf.name_scope("Cost"):
cost = -tf.reduce_mean(Y * tf.log(hypothesis) + (1 - Y) * tf.log(1 - hypothesis))
tf.summary.scalar("Cost", cost)

with tf.name_scope("train"):
train = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)
with tf.name_scope("Train"):
train = tf.train.AdamOptimizer(learning_rate=0.01).minimize(cost)

# Accuracy computation
# True if hypothesis>0.5 else False
predicted = tf.cast(hypothesis > 0.5, dtype=tf.float32)
accuracy = tf.reduce_mean(tf.cast(tf.equal(predicted, Y), dtype=tf.float32))
accuracy_summ = tf.summary.scalar("accuracy", accuracy)
tf.summary.scalar("accuracy", accuracy)

# Launch graph
with tf.Session() as sess:
Expand All @@ -64,27 +54,32 @@
sess.run(tf.global_variables_initializer())

for step in range(10001):
summary, _ = sess.run([merged_summary, train], feed_dict={X: x_data, Y: y_data})
_, summary, cost_val = sess.run(
[train, merged_summary, cost], feed_dict={X: x_data, Y: y_data}
)
writer.add_summary(summary, global_step=step)

if step % 100 == 0:
print(step, sess.run(cost, feed_dict={
X: x_data, Y: y_data}), sess.run([W1, W2]))
print(step, cost_val)

# Accuracy report
h, c, a = sess.run([hypothesis, predicted, accuracy],
feed_dict={X: x_data, Y: y_data})
print("\nHypothesis: ", h, "\nCorrect: ", c, "\nAccuracy: ", a)


'''
Hypothesis: [[ 6.13103184e-05]
[ 9.99936938e-01]
[ 9.99950767e-01]
[ 5.97514772e-05]]
Correct: [[ 0.]
[ 1.]
[ 1.]
[ 0.]]
Accuracy: 1.0
'''
h, p, a = sess.run(
[hypothesis, predicted, accuracy], feed_dict={X: x_data, Y: y_data}
)

print(f"\nHypothesis:\n{h} \nPredicted:\n{p} \nAccuracy:\n{a}")

"""
Hypothesis:
[[6.1310326e-05]
[9.9993694e-01]
[9.9995077e-01]
[5.9751470e-05]]
Predicted:
[[0.]
[1.]
[1.]
[0.]]
Accuracy:
1.0
"""

0 comments on commit 54d5a6a

Please sign in to comment.