tensorflow1.0 LSTM实现

本文档展示了如何在TensorFlow 1.0中使用LSTM。通过LSTM_single函数定义了LSTM单元,并在训练过程中用AdamOptimizer进行优化。代码中用到了变量num_step来调整序列长度,通过最小化预测值与目标值之间的平方误差来计算准确率。
摘要由CSDN通过智能技术生成

代码中num_step可以设置为需要的序列长度,常常为了梯度反传的方便将num_step设置为较小的值。   

 def LSTM_single( name,  _X, _istate, _weights, _biases):


        # input shape: (batch_size, n_steps, n_input)
        _X = tf.transpose(_X, [1, 0, 2])  # permute num_steps and batch_size
        # Reshape to prepare input to hidden activation
        _X = tf.reshape(_X, [self.num_steps * self.batch_size, self.num_input]) # (num_steps*batch_size, num_input)
        # Split data because rnn cell needs a list of inputs for the RNN inner loop
        _X = tf.split(axis=0, num_or_size_splits=self.num_steps, value=_X) # n_steps * (batch_size, num_input)
        #print("_X: ", _X)


        #cell = tf.nn.rnn_cell.LSTMCell(self.num_input, self.num_input)
        cell = tf.contrib.rnn.LSTMCell(self.num_input, state_is_tuple=False)
        state = _istate
        output
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值