
296
2
부
빌딩 블록
X.append(np.concatenate((window[:w], window[w+1:])))
Y.append(window[w])
X = np.array(X)
Y = ku.to_categorical(Y, vocab_size)
return X, Y
이제 실제로 생성자를 만들어 내는 함수를 작성해보자. 파이썬 생성자를 사용하여 학습하므로
배치 생성자를 만드는 유틸리티 함수가 필요하다.
def generate_batch(windows, batch_size=100):
while True:
indices = np.arange(windows.shape[0])
indices = np.random.choice(indices, batch_size)
batch_windows = windows[indices, :]
yield windows_to_batch(batch_windows)
이제는 모델을 구현할 수 있다. 모델을 정의해보자. 우리는
50
차원 단어 벡터를 만들 것이다.
차원 수는 말뭉치 크기에 기반을 두어야 한다. 그러나 명확한 규칙은 없다.
from keras.models import Sequential
from keras.layers import *
import keras.backend as K
import keras.utils as ku
dim ...