이전에 예제와 동일한 코드를 사용해서 데이터를 벡터로 변환합니다.
import numpy as np
def vectorize_sequences(sequences, dimension=10000):
results = np.zeros((len(sequences), dimension))
for i, sequence in enumerate(sequences):
results[i, sequence] =1.
return results
x_train = vectorize_sequences(train_data) .............. 훈련 데이터 벡터 변환
x_test = vectorize_sequences(test_data) ................ 텍스트 데이터 벡터 변환
레이블을 벡터로 바꾸는 방법은 두 가지입니다. 레이블의 리스트를 정수 텐서로 변환하는 것과 원-핫 인코딩을 사용하는 것입니다. 원-핫 인코딩이 범주형 데이터에 널리 사용되지 때문에 범주형 인코딩(catetorical encoding)이라고 부릅니다. 원-핫 인코딩에 대한 자세한 설명은 6.1절을 참고하세요. 이 경우 레이블의 원-핫 인코딩은 각 레이블의 인텍스 자리는 1이고 나머지는 모두 0인 벡터입니다. 다음과 같습니다.
def to_one_hot(labels, dimension=46):
results = np.zeros((len(labels), dimension))
for i, label in enumerate(labels):
results[i, label] = 1.
return results
one_hot_train_labels = to_one_hot(train_labels) ............. 훈련 레이블 벡터 변환
one_hot_test_labels = to_one_hot(test_labels)..............테스트 레이블 벡터 변환
MNIST예제에서 이미 보았듯이 케라스에는 이를 위한 내장 함수가 있습니다.
from keras.utils.np_utils import to_categorical
one_hot_train_labels = to_categorical(train_labels)
ont_hot_test_labels = to_categorical(test_labels)
댓글 없음:
댓글 쓰기