U E D R , A S I H C RSS

머신러닝스터디/2016/2016_05_28 (rev. 1.1)

머신러닝스터디/2016/2016_05_28

# (0, 0) => 0
# (0, 1) => 0
# (1, 0) => 0
# (1, 1) => 1
​
​
W1 = tf.Variable(tf.random_uniform([2, 2]))
b1 = tf.Variable(tf.random_uniform([2]))
​
W2 = tf.Variable(tf.random_uniform([2, 1]))
b2 = tf.Variable(tf.random_uniform([1]))
​
def logic_gate(x):
    hidden = tf.sigmoid(tf.add(tf.matmul(x, W1), b1))
    return tf.sigmoid(tf.add(tf.matmul(hidden, W2), b2))
​
x = tf.placeholder("float", [None, 2])
y = tf.placeholder("float", [None, 1])
​
value = logic_gate(x)
loss = tf.reduce_mean(-(y * tf.log(value) - ((1-y) * tf.log(1-value))))
​
optimize = tf.train.GradientDescentOptimizer(0.01).minimize(loss)
​
init = tf.initialize_all_variables()
​
with tf.Session() as sess:
    sess.run(init)
    for i in range(30001):
        result = sess.run(optimize, feed_dict={x: [[0, 0], [0, 1], [1, 0], [1, 1]], y: [[1], [0], [0], [1]]})
        if (i % 1000 == 0):
            print(i)
            print(sess.run([value, loss], feed_dict={x: [[0, 0], [0, 1], [1, 0], [1, 1]], y: [[1], [0], [0], [1]]}))
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:29:26
Processing time 0.0132 sec