본문으로 바로가기

[Tensorflow]Tensorflow 기본(3)

category 인공지능/Tensorflow 2017. 7. 20. 23:28
728x90
반응형

오늘은 Tensorflow 공부 세번째 시간입니다.


저는 아래의 Tensorflow 튜토리얼을 보고 나름대로 정리를 하면서 공부중에 있습니다.


https://github.com/golbin/TensorFlow-Tutorials


지금부터 예제 소스 코드를 한번 살펴보겠습니다.


 

 

 

# 한글 때문에 아래의 한줄을 추가하여야됩니다.

#-*- coding: utf-8 -*-


# 이번 예제는 X 와 Y 의 상관관계를 분석하는 기초적인 선형 회귀 모델을 만들고 실행합니다.

import tensorflow as tf


# 각가의 데이터를 만듭니다.

x_data = [1, 2, 3]

y_data = [1, 2, 3]


# 크기가 [1]인 행렬에 -1과 1사이의 랜덤값을 W와 b에 넣습니다.

W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))

b = tf.Variable(tf.random_uniform([1], -1.0, 1.0))


# name: 나중에 텐서보드등으로 값의 변화를 추적하거나 살펴보기 쉽게 하기 위해 이름을 붙여줍니다.

# X, Y라는 이름을 붙입니다.

X = tf.placeholder(tf.float32, name="X")

Y = tf.placeholder(tf.float32, name="Y")

print(X)

print(Y)


 

 

 



# X 와 Y 의 상관 관계를 분석하기 위한 가설 수식을 작성합니다. (2차 그래프)

# y = W * x + b

# W 와 X 가 행렬이 아니므로 tf.matmul 이 아니라 기본 곱셈 기호를 사용했습니다.

hypothesis = W * X + b


# 손실 함수를 작성합니다.

# mean(h - Y)^2 : 예측값과 실제값의 거리를 비용(손실) 함수로 정합니다.

cost = tf.reduce_mean(tf.square(hypothesis - Y))


# 텐서플로우에 기본적으로 포함되어 있는 함수를 이용해 경사 하강법 최적화를 수행합니다.

optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.1)


# 비용을 최소화 하는 것이 최종 목표입니다.

train_op = optimizer.minimize(cost)


# 세션을 생성하고 초기화합니다.

with tf.Session() as sess:

    sess.run(tf.global_variables_initializer())


    # 최적화를 100번 수행합니다.

    for step in range(100):

        # sess.run 을 통해 train_op 와 cost 그래프를 계산합니다.

        # 이 때, 가설 수식에 넣어야 할 실제값을 feed_dict 을 통해 값이 전달됩니다.

        _, cost_val = sess.run([train_op, cost], feed_dict={X: x_data, Y: y_data})


        print(step, cost_val, sess.run(W), sess.run(b))


    # 최적화가 완료된 모델에 테스트 값을 넣고 결과가 잘 나오는지 확인하는 작업입니다.

    print("\n=== Test ===")

    print("X: 5, Y:", sess.run(hypothesis, feed_dict={X: 5}))

    print("X: 2.5, Y:", sess.run(hypothesis, feed_dict={X: 2.5}))


 

 



오늘도 포스팅은 여기까지 하겠습니다.


아직까지는 예제의 주석만으로도 충분합니다.


궁금한점 있으면 댓글 남겨주세요


읽어주셔서 감사합니다.

728x90
반응형

'인공지능 > Tensorflow' 카테고리의 다른 글

[Tensorflow] random seed  (0) 2020.12.09
[Tensorflow] Keras  (0) 2020.11.28
[Tensorlow]Tensorflow 기본(2)  (0) 2017.07.03
[Tensorflow]Tensorflow 기본(1)  (0) 2017.06.29