双向LSTM
我们为什么要用双向LSTM?
双向卷积神经网络的隐藏层要保存两个值, A 参与正向计算, A’ 参与反向计算。最终的输出值 y 取决于 A 和 A’:
即正向计算时,隐藏层的 s_t 与 s_t-1 有关;反向计算时,隐藏层的 s_t 与 s_t+1 有关
现在们利用tensorflow提供双向LSTM函数来进行手写识别的分类案例,时间序列数据数据的预测也可以通过修改数据集来实现
加载数据
mnist=input_data.read_data_sets("MNIST/",one_hot=True)
定义一个参数的配置类
class Config():
"""
配置文件的类
"""
def __init__(self,input,timestep,batchsize,hidden_unit,hidden_unit1,learning_rate,epoch,num_class):
self.TimeStep=timestep
self.input=input
self.batchsize=batchs