인공지능을 알아가보자
python에서 tensorflow모듈을 이용한 경사하강법 본문
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 = [3, 1, 40, 12] y_data = [11, 2, 125, 38] X = tf.placeholder(tf.float32, shape=[None]) Y = tf.placeholder(tf.float32, shape=[None]) w = tf.Variable(tf.random_normal([1])) b = 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문을 통해 몇번을 돌릴지 정해서 최적값을 구해줍니다
'Emotion' 카테고리의 다른 글
mnist함수를 이용한 tensorflow (0) | 2018.11.20 |
---|---|
tensorflow sigmoid를 이용한 경사하강법 (0) | 2018.10.02 |
PyQt를 이용한 gui만들기 (0) | 2018.08.21 |
c언어를 이용한 갤러그 만들기 (0) | 2018.08.21 |
파이썬을 이용한 마름모 별출력 (0) | 2018.05.16 |
Comments