>>> import tensorflow.compat.v1 as tf
>>> tf.disable_v2_behavior()
>>>
>>>
>>> x_data = [1,2,3]
>>> y_data = [1,2,3]
>>>
>>> W = tf.Variable(tf.random_normal([1]), name='weight')

import하면 비어있는 그래프가 만들어짐

W = tf.Variable(tf.random_normal([1]), name='weight')

    ->w의 값 variable로 선언하고 random값 

 

 

>>> X = tf.placeholder(tf.float32)
>>> Y = tf.placeholder(tf.float32)

x,y값 던져주고 싶어서 만들고

 

 

수동으로 cost를 설정

>>> learing_rate = 0.1
>>> gradient = tf.reduce_mean((W * X - Y) * X)
>>> descent = W - learing_rate * gradient
>>> update = W.assign(descent)

learing_rate는 알파

reduce_mean() : 평균값

assign() : 변수값 바꾸고 싶으면

 

 

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

Session()은

파이썬 객체와 데이터, 객체의 메모리가 할당되어 있는 실행 환경 사이를 연결,

중간 결과를 저장,

최종 결과를 작업 환경으로 보내준다.

 

Session.run()

   연산 그래프 실행

https://excelsior-cjh.tistory.com/151

 

[러닝 텐서플로]Chap03 - 텐서플로의 기본 이해하기

Chap03 - 텐서플로의 기본 이해하기 텐서플로의 핵심 구축 및 동작원리를 이해하고, 그래프를 만들고 관리하는 방법과 상수, 플레이스홀더, 변수 등 텐서플로의 '구성 요소'에 대해 알아보자. 3.1 ��

excelsior-cjh.tistory.com

 

tf.global_variables_initializer() : 변수 초기화

 

 

 

 

>>> for step in range(21):
...     sess.run(update, feed_dict={X: x_data, Y:y_data})
...     print(step, sess.run(cost, feed_dict={X : x_data, Y: y_data}), sess.run(W))

updata를 실행시켜줌 x_data, y_data를 던져주면서

 

 

결과

step / cost / W

0 0.012103487 [0.970597]
array([0.98431844], dtype=float32)
1 0.0034427664 [0.98431844]
array([0.9916365], dtype=float32)
2 0.0009792704 [0.9916365]
array([0.9955395], dtype=float32)
3 0.00027854493 [0.9955395]
array([0.99762106], dtype=float32)
4 7.923102e-05 [0.99762106]
array([0.99873126], dtype=float32)
5 2.2535067e-05 [0.99873126]
array([0.9993233], dtype=float32)
6 6.411002e-06 [0.9993233]
array([0.9996391], dtype=float32)
7 1.8234161e-06 [0.9996391]
array([0.99980754], dtype=float32)
8 5.186591e-07 [0.99980754]
array([0.99989736], dtype=float32)
9 1.475607e-07 [0.99989736]
array([0.9999453], dtype=float32)
10 4.1876277e-08 [0.9999453]
array([0.9999708], dtype=float32)
11 1.1962996e-08 [0.9999708]
array([0.99998444], dtype=float32)
12 3.3937688e-09 [0.99998444]
array([0.9999917], dtype=float32)
13 9.580283e-10 [0.9999917]
array([0.9999956], dtype=float32)
14 2.7553426e-10 [0.9999956]
array([0.9999977], dtype=float32)
15 7.48237e-11 [0.9999977]
array([0.99999875], dtype=float32)
16 2.2385649e-11 [0.99999875]
array([0.99999934], dtype=float32)
17 5.7873706e-12 [0.99999934]
array([0.99999964], dtype=float32)
18 1.5489832e-12 [0.99999964]
array([0.9999998], dtype=float32)
19 3.872458e-13 [0.9999998]
array([0.9999999], dtype=float32)
20 2.9842795e-13 [0.9999999]

실행 시킬 수록 cost작아짐

W는 1에 가까운 수가 된다. 

 

 

 

 

+ Recent posts