我试图调和我对LSTM的理解,并在克里斯托弗·奥拉在克拉拉斯实施的这篇文章中指出.我正在关注Jason Brownlee为Keras教程撰写的博客.我主要困惑的是,
[samples, time steps, features]和,让我们参考下面粘贴的代码集中讨论上述两个问题:
# reshape into X=t and Y=t+1
look_back = 3
trainX, trainY = create_dataset(train, look_back)
testX, testY = create_dataset(test, look_back)
# reshape input to be [samples, time steps, features]
trainX = numpy.reshape(trainX, (trainX.shape[0], look_back, 1))
testX = numpy.reshape(testX, (testX.shape[0], look_back, 1))
########################
# The IMPORTANT BIT
##########################
# create and fit the LSTM network
batch_size = 1
model = Sequential()
model.add(LSTM(4, …Run Code Online (Sandbox Code Playgroud) 我想知道LSTM如何在Keras工作.例如,在本教程中,与许多其他教程一样,您可以找到如下内容:
model.add(LSTM(4, input_shape=(1, look_back)))
Run Code Online (Sandbox Code Playgroud)
"4"是什么意思.它是图层中神经元的数量.通过神经元,我的意思是每个实例给出一个输出?
实际上,我发现了这个明智的讨论, 但并没有真正相信参考文献中提到的解释.
在该方案中,人们可以看到num_units说明,我认为我没有错的话,每个这个单位是一个非常原子LSTM单元(即4门).但是,这些单位是如何连接的?如果我是对的(但不确定),x_(t-1)是大小nb_features,所以每个功能都是一个单位的输入,num_unit必须等于nb_features正确?
现在,我们来谈谈keras.我已阅读此帖和接受的答案并遇到麻烦.的确,答案是:
基本上,形状就像(batch_size,timespan,input_dim),其中input_dim可以有不同的unit
在这种情况下 ?我在之前的参考文献中遇到了麻烦......
而且,它说,
Keras中的LSTM仅定义一个LSTM块,其单元长度为单位长度.
好的,但是如何定义完整的LSTM图层呢?是否input_shape隐含地创建了与数量一样多的块time_steps(根据我是input_shape我的代码中参数的第一个参数?
谢谢你照亮我
编辑:是否也可以清楚地详细说明如何重塑(n_samples, n_features)有状态LSTM模型的数据?如何处理time_steps和batch_size?