오늘은 Tensorflow 공부 두번째 시간입니다.
저는 아래의 Tensorflow 튜토리얼을 보고 나름대로 정리를 하면서 공부중에 있습니다.
https://github.com/golbin/TensorFlow-Tutorials
지금부터 예제 소스 코드를 한번 살펴보겠습니다.
# 한글 때문에 아래의 한줄을 추가하여야됩니다.
#-*- coding: utf-8 -*-
import tensorflow as tf
# tf.placeholder: 계산을 실행할 때 입력값을 받는 변수로 사용합니다. 매개변수로는 dtype, shape, name의 값을 입력할 수 있습니다.
#placeholder(
# dtype,
# shape=None,
# name=None
#)
# 첫번째값은 자료형, 두번째 값은 Tensor의 형태, 세번째 값은 작업의 이름입니다.
# 두번째, 세번째 값은 생략 가능합니다.
# 아래의 소스에서는 tf.float32 자료형을, 크기는 [None, 3]의 크기의 Matrix(배열)만을 입력데이터로 사용 한다는 뜻입니다.
X = tf.placeholder(tf.float32, [None, 3])
print(X)
# placeholder에 넣을 값을 변수에 저장합니다.
# placeholder에 [None, 3]의 크기의 Matrix만 입력을 받게 설정을 해두었기 때문에, 아래와 같이 두번째 차원의 요소의 갯수가 3개로된 값만 입력 받습니다.
x_data = [[1, 2, 3], [4, 5, 6]]
# tf.Variable: 그래프를 계산하면서 최적화 할 변수들입니다. 이 값이 바로 신경망을 좌우하는 값들입니다.
# tf.random_normal: 각 변수들의 초기값을 정규분포 랜덤 값으로 초기화합니다.
W = tf.Variable(tf.random_normal([3, 2]))
b = tf.Variable(tf.random_normal([2, 1]))
# 계산에 필요한 수식을 만듭니다.
# tf.matmul 처럼 mat* 로 시작하는 함수로 행렬 계산을 수행합니다.
expr = tf.matmul(X, W) + b
sess = tf.Session()
# 코드를 실행하기 위해서 세션을 수행합니다.
# 처음에 전체적인 변수들에 초기화를 수행해야됩니다.
sess.run(tf.global_variables_initializer())
# 필요한 값들을 찍어보고, 한번 예상까지 해봅시다.
print("=== x_data ===")
print(x_data)
print("=== W ===")
print(sess.run(W))
print("=== b ===")
print(sess.run(b))
print("=== expr ===")
# expr 수식에는 X에 입력값을 넣어야됩니다.
# 아래와 같이 expr 실행시에는 이 변수에 대한 실제 입력값을 다음처럼 feed_dict 처럼 넣어줘야합니다.
print(sess.run(expr, feed_dict={X: x_data}))
sess.close()
오늘도 포스팅은 여기까지 하겠습니다.
초반부에서는 별 어려움이 없을 것을 보입니다.
궁금한점 있으면 댓글 남겨주세요
읽어주셔서 감사합니다.