20180103

TensorFlow 1.5 CNN 이미지 분류 실험

연말에 시간 남아서 TF 1.5 rc 올라온 김에 CNN 돌려봤다. 데이터는 사내 제품 이미지 분류 토이 셋(8 클래스, 각 300장 정도). 별 거 아니지만 기록용.

모델은 그냥 평범하게.

import tensorflow as tf
from tensorflow.contrib import slim

def build(x, is_training):
    net = slim.conv2d(x, 32, [3,3], scope='conv1')
    net = slim.max_pool2d(net, [2,2], scope='pool1')
    net = slim.conv2d(net, 64, [3,3], scope='conv2')
    net = slim.max_pool2d(net, [2,2], scope='pool2')
    net = slim.flatten(net)
    net = slim.dropout(net, 0.5, is_training=is_training)
    return slim.fully_connected(net, 8, activation_fn=None)

tf.contrib 언제 없어진다는 얘기 계속 나오는데 아직까지는 slim 편함. 1.5에서 eager execution도 써보려다가 학습 속도 차이 너무 나서 접음. 아직은 graph 기반이 맘편하다.

결과는 val acc 0.81 정도. 데이터 augmentation(좌우반전, 살짝 zoom) 했을 때 0.86까지 올라감. 배치 사이즈는 32. GPU는 1080ti 한 장.

메모 — 다음에 할 것:
- pretrained resnet_v2_50 feature로 바꿔보기
- tf.data API 써서 큐 없애기 (1.4부터 정식)
- TensorBoard에 confusion matrix 넣는 방법

댓글 없음: