본문 바로가기
Machine Learning

파이썬 텐서플로우 One hot Encoding 예제 코드 (Python Tensorflow)

by 무적물리 2021. 4. 10.

머신러닝 혹은 딥러닝을 수행하면서 Softmax 방법을 사용하기 위해서는 One hot encoding 방법을 사용해야 합니다. 이번 포스팅에서는 파이썬 텐서플로우를 사용해서 One hot encoding 코드를 예제를 통해 구현해보겠습니다.

 

Tensorflow에는 1 버전과 2 버전이 있는 만큼 두 가지에서 각각의 버전에서 사용 가능한 코드를 구현하겠습니다.

 

 

 

예제 데이터

One hot encoding 예제를 풀기 위해서는 데이터가 필요합니다. 아래와 같이 예제 데이터를 선언할 계획이며, 이 중에서 Output data를 사용해서 예제를 구현해보겠습니다. Input data는 다른 예제에서 사용됩니다.

 

# 예제 데이터 선언
import numpy as np

Input_data = np.array([[1,1], [2,2], [3,3], [4,4], [5,5], [6,6], [7,7], [8,8]])
Output_data = np.array([[0], [1], [2], [3], [4], [5], [6], [7]])

 

 

파이썬 소수점 자리수 제한 방법과 예제 (Python Round)

데이터 처리를 위해 파이썬을 사용하기 때문에 숫자의 소수점 자리수를 제한할 일이 없습니다. 하지만 오늘은 보고서 작성을 위해 파이썬 소수점 자리수를 제한해야 했기 때문에 아래 코드를

muzukphysics.tistory.com

 

 

Tensorflow 1 One hot encoding

아시다시피 텐서플로우는 1 버전과 2 버전으로 나눌 수 있습니다. 이번 절에서 사용하는 코드는 Tensorflow 1 버전에서 사용 가능한 코드입니다.

 

# Label to One-hot Encording
import tensorflow as tf

nb_classes = 8   # Label EA
Y_one_hot = tf.reshape(tf.one_hot(Output_data, nb_classes), [-1, nb_classes])

with tf.Session() as sess:
    Output_data_hot = sess.run(Y_one_hot)
    print(Output_data_hot)

 

 

 

Tensorflow 2 One hot encoding

해당 코드는 텐서플로우 2 버전에서 사용 가능한 코드입니다. 버전2에서는 Session() 단계가 없어지면서 코드가 심플해진 것을 확인하실 수 있습니다.

 

# Label to One-hot Encording
import tensorflow as tf

nb_classes = 8   # Label EA
Y_one_hot = tf.reshape(tf.one_hot(Output_data, nb_classes), [-1, nb_classes])

print(Y_one_hot)

 

 

 

One hot encoding 출력

버전 1과 버전 2의 출력 값은 동일하며 출력은 아래와 같습니다. 주의해야 하는 점은 One hot encoding 적용 전의 Y 데이터가 정수로 구성된다면 0부터 차례대로 Labeling 되어 있어야 한다는 점입니다. 이는 Y의 데이터를 바꿔보면서 테스트한다면 쉽게 이해 가능합니다.

 

tf.Tensor(
[[1. 0. 0. 0. 0. 0. 0. 0.]
 [0. 1. 0. 0. 0. 0. 0. 0.]
 [0. 0. 1. 0. 0. 0. 0. 0.]
 [0. 0. 0. 1. 0. 0. 0. 0.]
 [0. 0. 0. 0. 1. 0. 0. 0.]
 [0. 0. 0. 0. 0. 1. 0. 0.]
 [0. 0. 0. 0. 0. 0. 1. 0.]
 [0. 0. 0. 0. 0. 0. 0. 1.]], shape=(8, 8), dtype=float32)

 

 

Tensorflow Activation Function 종류 정리 및 코드

최근 업무상 텐서플로우를 사용해서 머신러닝 모델을 구축하고 있습니다. ReLU나 tanh와 같이 다양한 Activation Function을 적용하면 인공신경망 모델을 개선하는데 도움이 됩니다. 이번 포스팅에서는

muzukphysics.tistory.com

 

 

마치며

썸네일-이미지
썸네일

 

이번 포스팅에서는 Tensorflow를 사용한 One hot encoding 예제를 구현해보았습니다. 텐서플로우는 버전 1과 버전 2로 사용 가능하기 때문에 두 가지 방법 모두 구현했습니다. 해당 방법을 사용해서 Softmax 예제를 풀어보시면 되겠습니다.

 

파이썬 데이터 최대 최소 정규화 예제 (Python Data MinMaxScaler with sklearn)

파이썬을 이용해 데이터 정규화를 해야 하는 일이 자주 있습니다. 대표적으로, 텐서플로우를 활용한 머신러닝 혹은 딥러닝이 이에 해당합니다. 이번 포스팅에서는 파이썬을 사용한 최대 최소

muzukphysics.tistory.com

댓글