目录
1、LSTM 的参数输入格式
2、input_size
3、batch_size
3、time_step
4、batch_size与time_step
1、LSTM 的参数输入格式
LSTM 的参数输入格式一般表示为 [batch_size, time_step, input_size]
中文解释为 [每一次feed数据的行数,时间步长,输入变量个数]
2、input_size
如果使用 7 个自变量来预测 1 个因变量,那么input_size=7,output_size=1
同理,使用 8 个自变量来预测 3 个因变量,那么input_size=8,output_size=3
3、batch_size
如果 数据有 10000 行,训练 100 次把所有数据训练完,那么 batch_size=10000/100=100
如果数据有 20000 行,同样训练100次把所有数据训练完,那么batch_size=20000/100=200
如果数据有 20000 行,训练50次把所有数据训练完,那么 batch_size=20000/50=400
以此类推……
一般的batch_size小于100,来使训练结果更好,一次feed太多行数据,模型容易吃撑。
3、time_step
在所有参数中 time_step 是最难理解的。首先要知道,time_step是指的哪个过程。
如上图,并不是每个细胞状态都是1个time_step,其实这一串的流程细胞状态图都是在1个time_step。在讲解LSTM模型原理时讲的是time_step的内部进行的,而不是在time_step之间,换句话说,所谓的 t-1 的遗留状态也是在一个 time_step 里面的事情,t 多少取决于time_step的取值。
4、batch_size与time_step
batch_size 中只是规定了一个每次 feed 多少行数据进去,但并没有涵盖一个时间的概念,而 time_step 这个参数刚好就是对于时间的限制。换句话说,就是在一个 batch_size 中,要定义一下每次数据的时间序列。如果数据都是按照时间排列的,batch_size=100,time_step=10,那么在第1次训练时,是用前100行数据进行训练,而在这其中每次给模型10个连续时间序列的数据,注意不要以为是1-10,11-20,21-30,这样把数据给模型,这是不对的,其实 time_step=n 意味着我们认为每一个值都和它前n个值有关,请看下图。
推荐阅读
发表评论