mymnist

개요

MNIST 예제 데이터를 TensorFlow 모델을 이용 하여 학습, 예측, 평가 할 수 있는 MNIST 예제 전용 명령어 입니다.

설명

MNIST 예제 데이터를 딥러닝 할 수 있는 명령어이며, 다른 데이터는 학습할 수 없는 MNIST 전용 명령어 입니다. Spark를 통해서 학습 데이터를 읽은 후 -> Tensorflow Dataset 으로 데이터를 전송 -> Tensorflow 모델을 이용하여 학습, 예측, 평가를 할 수 있습니다.

Examples

학습에 사용된 데이터는 아래와 같습니다.

Image-Label 데이터

image

label

0,0,0,…,0.12,0.92,0.23,…,0,0

1,0,0,0,0,0,0,0,0,0

0,0,0,…,0.12,0.92,0.23,…,0,0

0,0,0,0,0,1,0,0,0,0

mymnist 명령어를 통한 학습 예제 입니다.

batch_size : train 데이터의 배치 사이즈 입니다.

epochs : train 을 반복할 횟수 입니다.

mymnist fit test_model batch_size=128 epochs=5

학습결과로 각 epoch 당 정확도(accuracy), 손실률(loss) 과 같은 정보를 반환합니다.

학습 결과

epoch

losses

metrics

1

{‘loss’: 0.2142421}

{‘accuracy’: 0.15123124}

2

{‘loss’: 0.1442421}

{‘accuracy’: 0.32123124}

3

{‘loss’: 0.1042421}

{‘accuracy’: 0.55123124}

4

{‘loss’: 0.0942421}

{‘accuracy’: 0.71123124}

5

{‘loss’: 0.0542421}

{‘accuracy’: 0.85123124}

mymnist 명령어를 통한 예측 예제 입니다.

batch_size : test 데이터의 배치 사이즈 입니다.

interpret : 예측 결과의 label을 숫자 형태로 보여주는 옵션 입니다.

mymnist predict test_model batch_size=128 interpret=true
예측 결과

image

label

prediction

interpreted

0,0,0,…,0.12,0.92,0.23,…,0,0

1,0,0,0,0,0,0,0,0,0

1,0,0,0,0,0,0,0,0,0

0

0,0,0,…,0.12,0.92,0.23,…,0,0

0,0,1,0,0,0,0,0,0,0

0,0,1,0,0,0,0,0,0,0

2

mymnist 명령어를 통한 평가 예제 입니다.

batch_size : test 데이터의 배치 사이즈 입니다.

repeat : 평가를 반복할 횟 수 입니다.

rate : 평가에 사용될 랜덤 비율 입니다.

mymnist eval test_model repeat=2 batch_size=128 rate=0.8
평가 결과

no

losses

metrics

1

{‘loss’: 0.2142421}

{‘accuracy’: 0.815123124}

2

{‘loss’: 0.1442421}

{‘accuracy’: 0.802123124}

Parameters

mymnist operation model_name (epochs=[정수])? (batch_size=[정수])? (train_validation_ratio=[0<=실수<=1])? (continuous=[bool])? (rate=[0<=실수<=1])? (repeat=[정수])? (interpret=[bool])?

파라미터 이름

설명

필수/선택

operation

[fit, predict, eval] 중 택 1, 선택된 operation 에 따라 다른 동작

필수

model_name

학습 후 저장 할 이름

필수

epochs

[int] 학습의 반복 횟수

옵션, Default=5

batch_size

[int] 학습 데이터의 배치 크기, 예) 1000 rows 의 데이터, batch_size=100 -> (1000 / 100 = 10)개의 배치 데이터 -> 1 epoch 당 100 rows 데이터를 10번 학습

옵션, Default=32

train_validation_ratio

[float] Train 데이터를 분할 하여, 학습시 validation data 로 사용 하기 위한 비율, (현재는 지원되지 않습니다.)

옵션, Default=0.8

continuous

[bool] 이전에 학습된 모델에 새로운 데이터를 넣어 연속하여 학습 진행

옵션, Default=False

rate

평가 동작 시 테스트 데이터의 랜덤 비율

옵션, Default=0.7

repeat

평가 동작 시 평가를 반복 하려할 때 사용하는 옵션

옵션, Default=1

interpret

예측 동작 후 라벨 데이터를 사람이 볼 수 있는 형태로 변환하는 옵션

옵션, Default=False

Parameters BNF

mymnist_command : token token
                | token token options
options : option
        | options option
option : token EQUAL token
token : term
      | SQ terms SQ
      | DQ terms DQ
terms : term
      | terms term
term : WORD
     | NUMBER

SQ = r'\''
DQ = r'\"'
EQUAL = r'\='
NUMBER = r'\d+(.\d+)?'
WORD = r'[^\s|^\=]+'