2-1. tensorflow 로 간단한 linear regression 구현
소스 출처: https://github.com/hunkim/DeepLearningZeroToAll/
<환경 준비>
- 이전에 그냥 terminal 에서 사용했던 방식은 가독성이 좀 떨어지는 것 같아서
Jupyter을 설치하여 사용
- virtualenv : python 가상 환경
- jupyter notebook
: 오픈 소스 웹 애플리케이션으로, 라이브 코드, 등식, 시각화와 설명을 위한 텍스트 등을 포함한 문서를 만들고 공유하도록 할 수 있음
: 주로 데이터 클리닝, 변형, 수치 시뮬레이션, 통계 모델링, 머신 러닝 등에 사용
: Python, R, Julia, Scala 등 데이터 과학 분야에서 인기있는 40종의 다양한 프로그래밍 언어를 지원
: 한 마디로 웹 브라우저에서 사용하는 대화형 파이썬 환경
: 터미널에서
pip3 install —upgrade tensorflow
pip3 install - -upgrade virtualenv
Virtualenv - -system-site-packages tensorflow
Source ~/tenserflow/bin/activate
pip3 install --upgrade pip //pip 업데이트
pip3 install jupyter //python3을 쓰기 때문에pip3 으로 주피터 설치
jupyter notebook //주피터 노트북 실행
new-> Python3 선택/ 준비완료
1> 그래프 구현하기
tf.Variable
- 여기서의 variable : 텐서플로우가 자체적으로 변경시키는 값(trainable value)
- tf.variable 을 만들 때에는shape 선언을 해야하는데
이 경우에는 W 와 b 의 값을 모르니까 랜덤 값을 주면 됨,
-> tf.random_normal([1]) : 값이 하나인1차원 array (rank = 1)
- reduce_mean: 어떤tensor 가 주어졌을 때 평균을 내주는 라이브러리
실습>
: 2.5 가 나오는 것을 확인
: cost 를 이제 minimize 해야하는데
tensorflow에는 여러가지 방법이 있고 그 중 gradient descent 를 사용,
: optimizer 정의 후 이 optimizer 에 minimize 라는 함수를 호출
-> cost를 minimize 를 하여 tensorflow variavle W,b 를 알아서 조정해서 minize 함
2> 실행
: 세션 만들기
: variable 만들어 실행시키려면 반드기 global_variables_initializer() 호출
: 우리가 minimize 작업을 하는 노드 이름을 train 이라고 줬음
-> 그래프 상에서
: 이런 노드가 될 것
: 이 train 을 불러야 minimize 가 수행되는 것
: 20 번에 한번씩 출력
- 직접 실행
: 이런 그래프를 빌드하여 train 을 실행시켜-> 학습이 일어나고-> cost,W,b 값 나옴
: W=1,b=0이 되면 cost가 최소
이번에는 placeholder 사용!
Q. placeholder 를 사용하는 이유, 장점?
A. 우리가 만들어진 이 모델,
즉 실행 전 build 한 그래프(여기서는 linear regression)에 대해서 미리 만들어 두고, 실행 시에 값을 따로 넘겨줄 수 있다는 것
shape=[None] 정의
: 1차원array 이고, 갯수는 아무값이나
그리고 출력도 한번에 리스트로 묶어서 가능
출처 : 모두의 딥러닝 https://hunkim.github.io/ml/
'AI & Deep Learning > 실습' 카테고리의 다른 글
tensorflow 간단한 실행 - Placeholder (0) | 2019.04.01 |
---|---|
tensorflow 간단한 실행 - Constant (0) | 2019.04.01 |