Tensorflow : Tensor를 흘려보내면서 데이터를 처리하는 라이브러리
3 # 랭크 0 Tensor; shpae[ ] ==> 스칼라
[1,2,3] # 랭크 1 Tensor; shpae[ 3 ] ==> 벡터
[[1,2,3],[4,5,6]] # 랭크 2 Tensor; shpae[ 2,3 ] ==> 행렬
[[[1,2,3]],[[4,5,6]]] # 랭크 3 Tensor; shpae[ 2,1,3 ] ==> Tensor
Tensorflow를 이용해 프로그램 작성시 순서
1. 그래프 생성
2. 그래프 실행
노드(node) :연산, 변수, 상수 등을 정의
엣지(edge) : 텐서를 주고받으며 계산 수행
==> 실행하기 위해서 Tensorflow 의 Session() 을 사용한다.
1. Tensorflow 기초 그래프 생성
코드부 import tensorflow as tf # 그래프 노드 정의후 출력 node1 = tf.constant(4.0) #암시적으로 float32 로 선언 node2 = tf.constant(3.0) print("생성된 그래프 각각 출력 : ",node1,node2) # 그래프를 생성..
ai-hong.tistory.com
tf.constant #상수텐서를 의미
# tf.constant 의 인자
tf.constant(value , dtype=' ' , shpae=' ' , name = " " )
# ex1)
node = tf.constant(1.0,shpae=[2,3]) # [[1,1,1],[1,1,1]]
3-2 Placeholder ==> 임의의 값을 받아 임의의 값을 출력
tf.placeholder(dtype, shape = [ ] , name = " " )
# 값을 입력하기 위해서는 feed_dict를 사용
feed_dict = { a : ____ , b : _____ }
2. Placeholder 연습
코드부 import tensorflow as tf # placeholder 로 2개의 변수 선언 num1 = tf.placeholder(tf.float32) num2 = tf.placeholder(tf.float32) # placeholder로 선언된 두 변수 덧셈 adder = num1 + num2 print(adde..
ai-hong.tistory.com
3.3.1 선형회귀 및 경사하강법
회귀 : 어떤 실수값 예측 ex) 출산률, 주식시장 변동 등등..
분류 : 어떤 이산값 예측 ex) 이미지분류, 선호하는 정당 예측 등등..
* 머신러닝의 과정
① 학습하고자 하는 가설( Hx )을 수학적 표현식으로 - Hypothesis
② 가설의 성능을 측정할 수 있는 손실함수 정의 - Loss function
③ 손실함수를 최소화 할수 있는 학습 알고리즘 설계 - Minimize
가설 H = Wx + b
Loss 함수 1/2 ∑ (예측값 - 실제값 )^2 # reduce_mean ( tf.scare (가설 - y 값 ))
피라미터의 값을 적절히 업데이트 (Optimizer) --> 경사하강법 ( Gradient Descent )
# 경사 하강법 ( Gradient Descent )
- 현재 스텝의 피라미터에서 손실함수(cost, loss function) 의 미분값에 learning rate를 곱한 만큼 빼서 다음 스템의 피라미터 값으로 지정
* Loss function의 미분값이 크면 하나의 스템에서 피라미터 많이 업데이트
* Loss function의 미분값이 작으면 적게 업데이트
* learning rate 값이 크면 많이, 적으면 조금씩 업데이트 수행
3.3.2 선형회귀 알고리즘 구현 및 변수
#tf.Variable 함수의 인자 알아보기
tf.Variable(value = "__", trainable="True", name = "___")
# ex1)
w = tf.Variable(tf.random_normal([1])
3. 선형회귀 기초
코드부 import tensorflow as tf #선형회귀(Linear Regression) 모델 정의 = Wx + b W = tf.Variable(tf.random_normal([1]),name="W") b = tf.Variable(tf.random_normal([1]),name="b") X = tf.placeholder(dtyp..
ai-hong.tistory.com
tf.Variable로 초기화할수 있는 연산표
3.4 Tensorboard ( 텐서보드를 통한 시각화)
tf.summary.scalar('loss',loss) # 요약정보를 로그에 저장
merged = tf.summary.merge_all() # 모든 요약정보 병합
tensorboard_write = tf.summary.Filewriter('./tensorboard_log',sess.graph)
# 요약정보를 저장할 폴더 경로 설정 , sess.graph를 통해 그래프 구조도 함께 저장
summary = sess.run(merged.feed_dict{x:__, y:__}
tensorboard_write.add_summary(summary,i)
# 매 스테마다 요약정보 값을 계산해서 저장