본문 바로가기

Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
Tags
더보기
Archives
Total
Today
Yesterday
관리 메뉴

인공지능을 알아가보자

python에서 tensorflow모듈을 이용한 경사하강법 본문

Emotion

python에서 tensorflow모듈을 이용한 경사하강법

lis29188 2018. 9. 17. 15:40
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import tensorflow as tf
 
x_data = [314012]
y_data = [11212538]
 
= tf.placeholder(tf.float32, shape=[None])
= tf.placeholder(tf.float32, shape=[None])
 
= tf.Variable(tf.random_normal([1]))
= tf.Variable(tf.random_normal([1]))
 
hypothesis = w * X + b
cost = tf.reduce_mean(tf.square(hypothesis - Y))
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.002)
train = optimizer.minimize(cost)
 
sess = tf.Session()
sess.run(tf.global_variables_initializer())
 
for i in range(10000):
    _, cost_ = sess.run([train, cost], feed_dict={X: x_data, Y: y_data})
    print(cost_,sess.run(w),sess.run(b))
cs

x_data와 y_data를 통해 x좌표와y좌표를 받고 hypothesis즉 가정치라는 변수를 설정하고 w*X+b라는 식이라고 정의를 해줍니다 

그리고 cost값은 hypothesis-Y를 하고 tf.square라는 명령어로 제곱을 해주고 tf.reduce_mean으로 평균값을 구하고 

optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.002)

다음과같이 optimizer라는 변수 즉 미분을 자동으로 해주는 변수를 설정해주고 learning_rate를 설정해줌으로써 건너뛰는 양의 값을 설정해줍니다.

sess = tf.Session()
sess.run(tf.global_variables_initializer())

sess라는 것을 통해 세션을 열어서값을 출력할수있게해줍니다 또한 sess.run(tf.global_variables_initializer()를 통해 모든 변수를 초기화 해줍니다 그리고 

for i in range(10000):
    _, cost_ = sess.run([train, cost], feed_dict={X: x_data, Y: y_data})
    print(cost_,sess.run(w),sess.run(b))

for문을 통해 몇번을 돌릴지 정해서 최적값을 구해줍니다


Comments