我的GitHub
一个有10000个不同单词的文本,通过深层lstm来实现句子下一单词的预测。
数据来源
通过reader.ptb_raw_data函数来读入文本,并将单词转换为数字id
然后通过PTBModel类来搭建深层LSTM模型
import tensorflow as tf
import numpy as np
import reader
DATA_PATH = "data"
HIDDEN_SIZE = 200
NUM_LAYERS = 2
VOCAB_SIZE = 10000
LEARNING_RATE = 1.0
TRAIN_BATCH_SIZE = 20
TRAIN_NUM_STEP = 35
EVAL_BATCH_SIZE = 1#学习速率
EVAL_NUM_STEP = 1
NUM_EPOCH = 2#训练轮数
KEEP_PROB = 0.5#不dropout的概率
MAX_GRAD_NORM = 5#控制梯度膨胀的参数
class PTBModel(object):
def __init__( self, is_training, batch_size, num_steps ):
self.batch_size = batch_size
self.num_steps = num_steps
#初始化输入数据的维度
self.input_data = tf.placeholder( tf.int32, [batch_size, num_steps] )
self.targets = tf.placeholder( tf.int32, [b