반응형
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
반응형
'Python > Tensorflow' 카테고리의 다른 글
[Tensorflow] 학습을 위한 대용량 훈련 데이터 처리 Data Generator 클래스 만들기 (1) | 2021.03.17 |
---|---|
[Tensorflow] K-Fold 교차 검증으로 학습 모델 검증하기 (sklearn) (0) | 2021.02.21 |
[Tensorflow] GAN (생산적 적대 신경망) 구현하기 (0) | 2021.02.17 |
[Tensorflow] RTX 3000 시리즈에 텐서플로우 2.5 및 CUDA 11 설치하기 (0) | 2021.02.01 |
[Tensorflow] keras를 이용한 MNIST, CIFAR 이미지 분류 데이터셋 다운로드 (0) | 2020.12.30 |