MNST-input data 로 기본적 트레이닝 테스트
인공지능,AI,학습,ML,Tensorflow, Cafee2,MLFlow/Tensorflow[ 참조 : MNST ]
import tensorflow as tf
# input_data 가 [ 0, 0, 0, 1, 0 ] 가 [0, 0, 0, 1, 0] 이 다섯클래스다라는 것을 트레이닝
# 추후에 input_data 를 data set 으로 확장하면 됨.
input_data = [1, 5, 3, 7, 8 ,10, 12]
lable_data = [0, 0, 0, 1, 0] // 5 class
INPUT_SIZE = 7
HIDDEN1_SIZE = 10
HIDDEN2_SIZE = 8
CLASSES = 5
# input_data 와 lable_data 를 텐서로 바꾸기.
# shape=[X, Y],
# X = input_data set 의 개수, set이 100개면 100, 하지만 보통은 모르기때문에 None
# Y = input_data 의 class 개수, 7
x = tf.placeholder(tf.float32, shape=[1, INPUT_SIZE])
y_ = tf.placeholder(tf.float32, shape=[1, CLASSES])
# 모델설계
# 신경망은 매트릭스연산 => Weight Matrix 설계 => Input data X Weight= 결과노드 => 결과 X Weight =결과노드 의 반복
# Weight 설계는 Variable로 제작
# truncated_normal = normal distribution, 디폴트평균 mean = 0.0, stddev = 1.0 사용 https://www.tensorflow.org/api_docs/python/tf/truncated_normal
# matmul : Matrix 곱셈
feed_dict = {x : input_data, y_ : lable_data}
W_h1 = tf.Variable(tf.truncated_normal(shape=[INPUT_SIZE, HIDDEN1_SIZE]), dtype=tf.float32)
b_h1 = tf.Variable(tf.zeros(shape=[HIDDEN1_SIZE]), dtype=tf.float32)
hidden1 = tf.matmul(x, W_h1) + b_h1
# 한번 더 반복
W_h2 = tf.Variable(tf.truncated_normal(shape=[HIDDEN1_SIZE, HIDDEN2_SIZE]), dtype=tf.float32)
b_h2 = tf.Variable(tf.zeros(shape=[HIDDEN2_SIZE]), dtype=tf.float32)
hidden2 = tf.matmul(hidden1, W_h2) + b_h2
# Output Layer
W_o = tf.Variable(tf.truncated_normal(shape=[HIDDEN2_SIZE, CLASSES]), dtype=tf.float32)
b_o = tf.Variable(tf.zeros(shape=[CLASSES]), dtype=tf.float32)
# Output 까지 아래와 같은 레이어로 그려진것.
# Hidden Layer 는 바꿔가며 트레이닝 테스트해야 함.
# 그래프는 아래와 같다.
# 트레이닝을 시키지 위해서는 Cost Function을 작성해야 한다.
'인공지능,AI,학습,ML,Tensorflow, Cafee2,MLFlow > Tensorflow' 카테고리의 다른 글
Saver 에서 save 후, CheckpointVariables 변수 보기 (0) | 2019.03.26 |
---|---|
Linear regresision, Logistic (0) | 2018.06.11 |
트레이닝 샘플 (0) | 2018.06.11 |
Constant, Variable, Placeholder 의 차이점. (0) | 2018.06.11 |
graph 및 기본 연산 샘플 (0) | 2018.06.11 |