TFLearn LSTM 时间序列分类
Posted
技术标签:
【中文标题】TFLearn LSTM 时间序列分类【英文标题】:TFLearn LSTM Time Series Classification 【发布时间】:2018-05-25 16:29:51 【问题描述】:我正在尝试构建一个 LSTM 网络,该网络采用一个序列并对每个序列中的最后一个时间步进行分类。
这是我目前所拥有的:
#build
net = tf.input_data(shape=[None, 64, 17])
net = tf.lstm(net, 128, dropout=[.2,.8], return_seq=True)
net = tf.lstm(net, 128, dropout=[.2,.8], return_seq=True)
net = tf.lstm(net, 128, dropout=[.2,.8])
net = tf.fully_connected(net, 3, activation='softmax')
net = tf.regression(net, optimizer='adam', learning_rate=0.01, loss='categorical_crossentropy')
#train
model = tf.DNN(net, tensorboard_verbose=0)
model.fit(trainX, trainY, validation_set=(testX,testY), show_metric=True, batch_size=None)
我的数据已经形成了大量的序列,每个序列有 64 个时间步长。每个时间步有 17 个特征。第一个序列是时间步 0 到 63,第二个是时间步 1 到 64,依此类推。
网络构建得很好,但是在 fit 方法中我得到了这个错误:
'ValueError: 无法为张量提供形状 (64,17) 的值 'InputData/X:0',形状为 (?,64,17)
有人对我的问题有建议吗?
【问题讨论】:
【参考方案1】:它不在您的 sn-p 中,但看起来 trainX
的形状为 (64, 17)
。如果是这样,您应该将其重塑为一批尺寸 1:
trainX = np.expand_dims(trainX, 0) # now it's [1, 64, 17]
testX
也一样。
【讨论】:
以上是关于TFLearn LSTM 时间序列分类的主要内容,如果未能解决你的问题,请参考以下文章