第二周
这周的主要内容是处理数据,使用DNN模型来对时间序列进行训练并预测,时间序列的数据处理主要用滑动窗口的形式来给模型输入,如下图所示:
代码结构如下所示:使用tf.dataset 接口,其中dataset.window()、dataset.flat_map()、dataset.shuffle()、dataset.batch()是dataset对象方法,具体使用教程参考tf.data.dataset
在训练过程中调整学习速率
模型训练结束后,我们可以看看随着学习速率的调整,模型损失值得变化曲线:
从损失的变化曲线我们可以看到,当学习速率取 7 ∗ 10 − 6 7*10{^{-6}} 7∗10−6
第三周
模型的输入形状:
下面这个RNN网络的输入形状为 4(batch_size)*30(window_size)*1
如果RNN用的3个神经元的话,则RNN层输出
y
0
^
\hat{y{_0}}
y0^的形状为4(batch_size)*30(winidow_size)*3
window_size就是{x0 x1 … X29} {Y0 Y1 … Y29}的个数30
最后有用的是
y
2
9
^
\hat{y{_29}}
y29^和
H
2
9
^
\hat{H{_29}}
H29^
使用多层RNN层的话,前RNN层必须带参数“return_sequences=True”,如上图所示。
上面第一个Lambda层用来扩充输入X的形状,第二个Lambda层是用来放大RNN层输出了,那样符合时间序列的规律(一般是大于1的数值),而RNN默认使用的tanh,它的输出范围时-1~1.
第四周:
这周就是将前几周我们学的知识结合起来,对太阳黑子进行预测,主要使用了CNN和LSTM结合的方式