참고 : https://www.youtube.com/playlist?list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm
모두를 위한 딥러닝 강좌 시즌 1
www.youtube.com
이전에 배웠던 hypothesis 와 cost function 기억하기~
cost function은 W와 b에 따라서 작아질수도 커질수도 있는데
학습을 해서 cost 를 최소화 시킨다고 할 수 있다.
tensorflow의 기본 3가지 순서
tensorflow를 통해 그래프를 빌딩하고
sess.run을 통해 그래프를 실행시키고
실행 결과가 값을 돌려주는.. 그런 순서!
x와 y의 데이터가 주어진다.
variable 이라는 노드를 사용한다.(텐서플로우에서 학습하는 과정에서 자기가 변경을 시킨다)
W는 1차원 array
b도 1차원 array
그다음에 cost 계산!
여러 함수가 쓰이는 걸 볼 수 있다.
reduce_mean 은 평균내주는 함수이다.
최소화 할때는 어떡할까?
optimizer 를 정의하고 minimize라는 함수를 호출한다 -> cost를 minimize하라!
그래프가 구현 되었으면 session을 만들어야겠지?
variable을 사용하기 전에는 global_variable_initializer 써줘야함
train(하나의 노드) 이라는 걸 실행시켜야겠다 이제.
너무 기니까 20번에 한번씩은 결과를 출력해주라.
cost도 출력하고. W도 출력하고. b도 출력하라.
결국 전체 소스코드는 이렇게 된다.
train만 실행시킨다는 건 다 연결이 되어있기 때문에 그래프를 실행시킨다고 할 수있다.
결과를 보면 cost는 엄청 작아지고 W는 1에 가까워지고 b도 0에 가까워진다. 신기신기
placeholder라는 개념이 있었지.
직접값을 주려고할때! 쓰였던 거다.
X랑 Y를 미리 선언하는게 아니라 feed_dict를 통해 넘겨주는 거다.
placeholder를 이용한 전체 코드는 다음과 같을 거다.
shape를 정의 할때 none에는 아무거나 들어올 수 있다.
결과는 보면
W는 1에 가까워지고 b는 1.1에 가까워진다
cost는 엄청작아지고~