나는 tensorflow에서 lstm을 사용하여 다음 단어를 예측하기 위해 모델을 설계하려고합니다.
Tensorflow RNN에 대한 자습서는 의사 코드에 PTB 데이터 세트에 LSTM을 사용하는 방법을 제공합니다.
일괄 처리 및 라벨 생성 단계에 도달했습니다.사전 정의 된 LSTM에 대한 입력 크기 이해
def generate_batches(raw_data, batch_size):
global data_index
data_len = len(raw_data)
num_batches = data_len // batch_size
#batch = dict.fromkeys([i for i in range(num_batches)])
#labels = dict.fromkeys([i for i in range(num_batches)])
batch = np.ndarray(shape=(batch_size), dtype=np.float)
labels = np.ndarray(shape=(batch_size, 1), dtype=np.float)
for i in xrange(batch_size) :
batch[i] = raw_data[i + data_index]
labels[i, 0] = raw_data[i + data_index + 1]
data_index = (data_index + 1) % len(raw_data)
return batch, labels
이 코드는 배치 및 레이블 크기 (batch_size X 1)를 제공합니다.
이러한 배치 및 레이블은 tf.nn.embedding_lookup()
을 사용하여 (batch_size x vocabulary_size) 크기 일 수도 있습니다.
그래서 여기에서 문제는 다음 기능을 사용하여 rnn_cell.BasicLSTMCell
을 사용하거나 사용자 정의 lstm 모델을 사용하는 방법입니까? input dimension to LSTM cell
은 무엇이며 num_steps
과 함께 사용하는 방법은 무엇입니까?
어떤 시나리오에서 어떤 배치 및 레이블 크기가 유용합니까?