본문 바로가기

AI & Deep Learning/실습

linear regression 구현_tensorflow

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                     //주피터 노트북 실행

 

jupyter

new-> Python3 선택/ 준비완료

 

 

1> 그래프 구현하기 

 tf.Variable

- 여기서의 variable : 텐서플로우가 자체적으로 변경시키는 값(trainable value)

 

tf.Variable

- tf.variable 을 만들 때에는shape 선언을 해야하는데 

이 경우에는 W 와 b 의 값을 모르니까 랜덤 값을 주면 됨, 

-> tf.random_normal([1]) : 값이 하나인1차원 array (rank = 1)

 

 

reduce_mean

- reduce_mean: 어떤tensor 가 주어졌을 때 평균을 내주는 라이브러리

 

 

 


실습>

reduce_mean

: 2.5 가 나오는 것을 확인

 

 

 

 

 

gradientDescent


: cost 를 이제 minimize 해야하는데

tensorflow에는 여러가지 방법이 있고 그 중 gradient descent 를 사용,

: optimizer 정의 후 이 optimizer 에 minimize 라는 함수를 호출

-> cost를 minimize 를 하여 tensorflow variavle W,b 를 알아서 조정해서 minize 함

 

 


2> 실행

global_variables_initializer()

: 세션 만들기

: variable 만들어 실행시키려면 반드기 global_variables_initializer() 호출

 

: 우리가 minimize 작업을 하는 노드 이름을 train 이라고 줬음


-> 그래프 상에서

train

: 이런 노드가 될 것

: 이 train 을 불러야 minimize 가 수행되는 것

 

 

sess.run(train)

: 20 번에 한번씩 출력

 


직접 실행

jupyter 실습

 

train-cost-hy-W,b

: 이런 그래프를 빌드하여 train 을 실행시켜-> 학습이 일어나고-> cost,W,b 값 나옴

: W=1,b=0이 되면 cost가 최소

 


이번에는 placeholder 사용!

 

placeholder, feed_dict

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