资讯专栏INFORMATION COLUMN

RNN理解与实践

mating / 2567人阅读

摘要:实践股票预测原始数据下载代码单层数据预处理导入数据最高价按时间升序标准化生成训练集时间步输出维度每一批次训练多少个样例输入维度输出维度学习率训练集构建图变量模型保存模型训练模型执行图每步保存一次参数保存模型参考单层多层双向参数

实践 股票预测 原始数据

下载

代码(单层LSTM)
# 数据预处理
## 导入数据
df = pd.read_csv("/Users/Nick/Desktop/stock_dataset.csv")
data = np.array(df["最高价"])
data = data[::-1] # 按时间升序
normalize_data=(data-np.mean(data))/np.std(data) #标准化
normalize_data=normalize_data[:,np.newaxis]# (6111, 1)
## 生成训练集
time_step=20    #时间步
rnn_unit=10       #lstm输出维度
batch_size=60   #每一批次训练多少个样例
input_size=1      #输入维度
output_size=1   #输出维度
lr=0.0006         #学习率
train_x,train_y=[],[]   #训练集
for i in range(len(normalize_data)-time_step-1):
    x=normalize_data[i:i+time_step]
    y=normalize_data[i+1:i+time_step+1]
    train_x.append(x.tolist()) # (6090, 20, 1)
    train_y.append(y.tolist()) # (6090, 20, 1)

# 构建图
tf.reset_default_graph()
## 变量
X = tf.placeholder(tf.float32, [batch_size, time_step, input_size])
Y = tf.placeholder(tf.float32, [batch_size, time_step, output_size])
## 模型
cell = tf.nn.rnn_cell.LSTMCell(rnn_unit, num_proj=output_size)
output_rnn, final_states = tf.nn.dynamic_rnn(cell, X,initial_state=init_state, dtype=tf.float32)
pred = output_rnn
loss=tf.reduce_mean(tf.square(tf.reshape(pred,[-1])-tf.reshape(Y, [-1])))
train_op=tf.train.AdamOptimizer(lr).minimize(loss)
saver=tf.train.Saver(tf.global_variables()) # 保存模型

# 训练模型(执行图)
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for i in range(100):
        step=0
        start=0
        end=start+batch_size
        while(end
参考

单层/多层/双向LSTM参数含义及实践
LSTM中units参数的理解
理解LSTM网络译文
有趣的RNN实践

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43367.html

相关文章

  • 从图像到知识:深度神经网络实现图像理解的原理解

    摘要:本文将详细解析深度神经网络识别图形图像的基本原理。卷积神经网络与图像理解卷积神经网络通常被用来张量形式的输入,例如一张彩色图象对应三个二维矩阵,分别表示在三个颜色通道的像素强度。 本文将详细解析深度神经网络识别图形图像的基本原理。针对卷积神经网络,本文将详细探讨网络 中每一层在图像识别中的原理和作用,例如卷积层(convolutional layer),采样层(pooling layer),...

    UnixAgain 评论0 收藏0
  • 机器学习

    摘要:用离散信一文清晰讲解机器学习中梯度下降算法包括其变式算法无论是要解决现实生活中的难题,还是要创建一款新的软件产品,我们最终的目标都是使其达到最优状态。 提高驾驶技术:用GAN去除(爱情)动作片中的马赛克和衣服 作为一名久经片场的老司机,早就想写一些探讨驾驶技术的文章。这篇就介绍利用生成式对抗网络(GAN)的两个基本驾驶技能: 1) 去除(爱情)动作片中的马赛克 2) 给(爱情)动作片中...

    wums 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<