DEEP.I - Lab

오프라인 공간의 지능화를 꿈꾸는 딥아이 연구실입니다.

Python/Tensorflow

[Tensorflow] 분류기 학습을 위한 One-Hot encoding 라벨 생성하기

Jongwon Kim 2021. 2. 24. 16:27
반응형

Concept

 

softmax / cross entropy 를 이용한 신경망 분류기 학습에는 일반적으로 One-Hot Encoding (원-핫 인코딩)된 라벨 데이터를 많이 활용합니다. 텐서플로우는 쉽게 라벨 생성을 위한 함수를 제공하고 있습니다.

 

SourceCode

Index 라벨 데이터 one hot incoding

MNIST의 경우, 라벨은 1차원으로 나열되어있으며 0은 0, 1은 1, ... , 9는 9로 인덱싱되어있습니다. 이를 원 핫 인코딩하면 다음과 같습니다.

 

여기서 on_value는 활성화된 값, off_value는 비활성값입니다. 일반적으로 1과 0으로 설정하면 됩니다. 만약 라벨 인덱스에 0 이하 값이 포함되어있다면, 값 설정이 혼돈될수 있기때문에 최소값을 0 이상으로 설정한 뒤 인코딩해주세요.

import tensorflow as tf

# 목표 라벨 개수 ex) mnist 10개, cifar-100 100개
label_size = 10

# one - hot encoding
label_one_hot = tf.one_hot(label_index, label_size,
                       on_value=1.0, off_value=0.0)

one hot incoding 라벨 데이터를  단일 Index로 decoding

인코딩된 값으로 학습하면 학습된 결과값 역시 인코딩된 방식으로 예측됩니다. 이를 다시 단일 Index로 변환하려면 argmax를 활용하면 됩니다.

prediction = model.predict(test_data)
index = tf.argmax(prediction, axis=1)

 

 

Your Best AI Partner DEEP.I
AI 바우처 공급 기업
객체 추적 및 행동 분석 솔루션 | 제조 생산품 품질 검사 솔루션 | AI 엣지 컴퓨팅 시스템 개발

인공지능 프로젝트 개발 외주 및 상담
E-mail: contact@deep-i.ai
Site: www.deep-i.ai

 

딥아이 DEEP.I | AI 기반 지능형 기업 솔루션

딥아이는 AI 기술의 정상화라는 목표를 갖고, 최첨단 딥러닝 기술 기반의 기업 솔루션을 제공하고 있으며, 이를 통해 고도의 AI 기반 객체 탐지, 분석, 추적 기능을 통합하여 다양한 산업 분야에

deep-i.ai

 

반응형