1. LSTM 简介
各个神经元计算公式:
各层格式:
1. input层: (batch_size, sequence_length, number_features)
2. output层: (batch_size, sequence_length, hidden_size)
3. Linear层(全连接层): (batch_size, n_hidden)
参数含义:
batch_size: 每批多少个序列;
sequence_length: 序列长度(步长);
number_features: 特征个数;
hidden_size: 隐藏层节点个数,n_hidden亦是。
2. 文本预测
本质上是分类问题
3. 数据加载
1. 获得字符表
这里共计83个,具体方法:将文本文件按字符去重,转换为arr。
def get_vocab():
with open('../data/anna.txt') as f:
text = f.read()
vocab = np.array(sorted(set(text)))
vocab_size = len(vocab)
print(vocab_size)
return vocab
2. 获得验证集测试集
def get_train_val_data_set():
with open('../data/anna.txt') as f:
text = f.read()
# 设置验证集占比20%
val_len = int(np.floor(len(text) * 0.2))
train_set = np.array(list(text[:-val_len]))
val_set = np.array(list(text[-val_len:]))
return train_set, val_set
3. 使用批处理方式加载数据
# data: 数据源,格式(num_samples, num_features)
# return: 新的数据集,格式(batch_size, seq_len, num_featu