TensorFlow 기본 개념을 간단하게 살펴보았고
(Tensorflow 기본개념✌)
본격적으로 TensorFlow 예제를 실습을 해볼 예정이다.
Tensorflow의 개념을 공부해보자
Tensorflow 예제를 돌려보자
내가 원하는 데이터로 학습을 시키고 결과를 도출해보자
TensorFlow 2.0을 실행하기 전에 1.15버전을 먼저 사용해볼 예정(기초탄탄)
✍🏻tensorflow downgrade하는 법
================================================
!pip uninstall tensorflow
!pip install tensorflow==1.15
================================================
✍🏻Linear Regression : feed from variable 예제
import tensorflow as tf
# Model parameters
W = tf.Variable([.3], tf.float32)
b = tf.Variable([-.3], tf.float32)
# Model input and output
x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)
linear_model = x * W + b
# cost/loss function
loss = tf.reduce_sum(tf.square(linear_model - y)) # sum of the squares
# optimizer
optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)
# training data
x_train = [1, 2, 3, 4]
y_train = [0, -1, -2, -3]
# training loop
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init) # reset values to wrong
for i in range(1000):
sess.run(train, {x: x_train, y: y_train})
# evaluate training accuracy
curr_W, curr_b, curr_loss = sess.run([W, b, loss], feed_dict={x: x_train, y: y_train})
print("W: %s b: %s loss: %s" % (curr_W, curr_b, curr_loss))
결과
W: [-0.9999969] b: [0.9999908] loss: 5.6999738e-11
✍🏻Variable 사용
W = tf.Variable([.3], tf.float32)
b = tf.Variable([-.3], tf.float32)
- 양수 4개, 음수 4개 담을 변수 선언
Variable란?
- 변수이며 Weight값을 저장할 때 주로 사용
✍🏻Placeholder 사용
x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)
- rank가 1이면서 type이 tf.float32인 placeholder 생성
placeholder란?
- 일정값을 받을 수 있게 만들어주는 그릇(학습용 데이터를 저장하는 그릇)
- 다른 자료형을 매핑하여 텐서로 변경해주는 역할
placeholder( dtype, shape=None, name=None )
dtype : 데이터 타입을 의미하며 반드시 적어야 함.
shape : 입력 데이터의 형태를 의미한다. 상수 값 or 다차원 배열
( 디폴트 파라미터로 None 지정 )
name : 해당 placeholder의 이름을 부여하는 것.
( 디폴트 파라미터로 None 지정 )
✍🏻소스 설명
loss = tf.reduce_sum(tf.square(linear_model - y)) # 제곱의 합
optimizer = tf.train.GradientDescentOptimizer(0.01) # 요청된 학습률에 gradients를 적용('경사하강법' 사용)
train = optimizer.minimize(loss) # minimize 함수는 글자 그대로 최소 비용을 찾아주는 함수경사하강법 = 파라미터를 임의로 정한 다음에 조금씩 변화시켜가며
손실을 점점 줄여가는 방법
init = tf.global_variables_initializer() #세션에 초기화 연산을 수행해야 하며, 변수에 메모리를 할당하고 초기값을 설정하는 역할