글씨가 왜 이렇게 자꾸 기울어 지는지...



핵심 소스

1
2
3
4
5
6
7
8
9
10
11
# 크기가 정해지지 않은(None), 2개의 입력값을 받는(placeholder) 변수
X = tf.placeholder(tf.float32, [None, 2])

#그래프를 계산하면서 최적화할(Variable), 0에 가까운 난수(truncate_normal)
w1 = tf.Variable(tf.truncate_normal([2, 4]))

# mat는 행렬을 의미하고 mul은 곱셈을 의미한다.
A1 = tf.matmul(X , w1) + b1

# sigmoid 함수는 양과 음의 무한대에 있는 수를 0과 1사이의 적당한 값으로 바꾼다.
Z1 = tf.sigmoid(A1)



모든 소스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import tensorflow as tf
import numpy as np

X_train = np.array([[0,0],[0,1],[1,0],[1,1]])
T_train = np.array([[0],[1],[1],[0]])

X = tf.placeholder(tf.float32, [None, 2])
T = tf.placeholder(tf.float32, [None, 1])

W1 = tf.Variable(tf.truncated_normal([2,4]))
b1 = tf.Variable(tf.zeros([4]))
W2 = tf.Variable(tf.truncated_normal([4,1]))
b2 = tf.Variable(tf.zeros([1]), dtype = tf.float32)

A1 = tf.matmul(X, W1) + b1
Z1 = tf.sigmoid(A1)
A2 = tf.matmul(Z1, W2) + b2
Z2 = tf.sigmoid(A2)

learn_rate = 0.1
Cost = tf.reduce_mean(tf.reduce_sum(tf.square(Z2-T), 1))
train = tf.train.GradientDescentOptimizer(learn_rate).minimize(Cost)

predict = Z2

sess = tf.Session()
sess.run(tf.global_variables_initializer())
for i in range(5000) :
    _train, _Cost = sess.run([train, Cost], feed_dict = {X:X_train, T:T_train})
    print("cost=", _Cost)

_predict = sess.run([predict], feed_dict = {X:X_train})
print("predict = ", _predict)
print("result = ", np.array(np.array(_predict)>0.5, np.int))



WRITTEN BY

배진오

소비적인 일보단 생산적인 일을 추구하며, 좋아하는 일을 잘하고 싶어합니다 :D
im@baejino.com