【发布时间】:2018-01-26 10:06:45
【问题描述】:
我正在尝试训练具有 64 个隐藏单元的 LSTM-RNN。我的数据如下:
输入: numpy 数组,维度为 (170000, 50, 500) ->(示例、时间步长、特征数)
输出: numpy 数组尺寸 (170000, 10)
输出是一个有 10 个类别的分类变量(例如,类别 1 对应于向量 [1,0,0,0,0,0,0,0,0,0])
到目前为止,我已经尝试过这段代码,但出现了一个错误,指出密集层应该有一个 3D 输入。
model = Sequential()
model.add(LSTM(64, input_shape=(50, 500), return_sequences=True,dropout=0.2, recurrent_dropout=0.2))
model.add(Dense(units = 10,activation='sigmoid'))
model.compile(loss='categorical_crossentropy', optimizer='adam')
model.fit(input, output, epochs=1, batch_size=64)
似乎唯一可行的方法是更改输出,使其具有以下形式:(170000,50,10),除了第 50 个时间步外,基本上全为零。
这是正确的方法吗?如果是这样,有没有更有效的方法?我担心扩展输出的形状可能会降低代码效率。
【问题讨论】:
标签: keras lstm many-to-one rnn