TensorFlow

2019. 1. 10. 00:45ML(Machine Learning)

 



TensorFlow는 open-source machine learning library이다.


High-level Keras API는 deep learning model들을 생성하고 트레이닝하기 위하여 block들을 구성하는 것을 제공한다.

아래는 TensorFlow에서 제공하는 Example로 간단하게 분석해보자.


Ex)test.py

//TensorFlow library를 우리의 Program으로 import.

import tensorflow as tf        


//MNIST dataset을 로드하고 준비한다. 샘플들을 Integer에서 Floating-point로 변환.

mnist = tf.keras.datasets.mnist

(x_train, y_train),(x_test, y_test) = mnist.load_data()

x_train, x_test = x_train / 255.0, x_test / 255.0


// 레이어들을 스택킹함으로써 tf.keras model를 구성한다.

model = tf.keras.models.Sequential([

    tf.keras.layers.Flatten(),

    tf.keras.layers.Dense(512, activation=tf.nn.relu),

    tf.keras.layers.Dropout(0.2),

    tf.keras.layers.Dense(10, activation=tf.nn.softmax)

])

// 트레이닝을 위해서 사용되어질 optimizer와 loss function을 선택한다.

model.compile(optimizer='adam',

            loss='sparse_categorical_crossentropy',

            metrics=['accuracy'])


//Model을 트레이닝하고 평가한다.

model.fit(x_train, y_train, epochs=5)

model.evaluate(x_test, y_test)

$python test.py

/home/pi/venv/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: compiletime version 3.4 of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.5

  return f(*args, **kwds)

/home/pi/venv/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: builtins.type size changed, may indicate binary incompatibility. Expected 432, got 412

  return f(*args, **kwds)

Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz

11493376/11490434 [==============================] - 3s 0us/step

Epoch 1/5

60000/60000 [==============================] - 153s 3ms/step - loss: 0.1988 - acc: 0.9425

Epoch 2/5

60000/60000 [==============================] - 150s 3ms/step - loss: 0.0798 - acc: 0.9757

Epoch 3/5

60000/60000 [==============================] - 150s 3ms/step - loss: 0.0529 - acc: 0.9834

Epoch 4/5

60000/60000 [==============================] - 150s 3ms/step - loss: 0.0378 - acc: 0.9879

Epoch 5/5

60000/60000 [==============================] - 151s 3ms/step - loss: 0.0267 - acc: 0.9914

10000/10000 [==============================] - 8s 795us/step


우리는 한 세대당 60000 dataset을 사용하여 99% 정도의 정확도를 가진 image classifier를 학습하였다.

Epoch: 세대
전체 데이터 세트의 각 예를 한 번씩 확인한 전체 학습 단계. 따라서, 한 세대는 N/배치크키 학습 반복을 나타내며, 여기에서 N은 총 예시 수를 나타냄.

Ref:
- https://developers.google.com/machine-learning/glossary/?hl=ko


'ML(Machine Learning)' 카테고리의 다른 글

Android를 위한 Caffe2 빌드  (0) 2019.04.23
Nvidia CUDA 지원 GPU 리스트  (0) 2019.04.15
jetson Nano  (0) 2019.03.19