【发布时间】:2017-02-24 10:27:23
【问题描述】:
我的数据是 68871 x 43,其中特征在第 1 列中。 1-43,每个标签表示为一个1x21向量
在我的 keras 代码中:
- 打印 trainX.shape -----> (41311, 10, 43)
- 打印 trainY.shape -----> (41311, 21)
- 打印 testX.shape ------> (27538, 10, 43)
- 打印 testY.shape ------> (27538, 21)
当我运行以下 keras 代码时:
model = Sequential()
model.add(LSTM(10, input_dim=43))
model.add(Dropout(0.3))
model.add(Dense(21, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
print(model.summary())
model.fit(trainX, trainY, validation_split=0.20, nb_epoch=1, batch_size=1, shuffle=False)
scores = model.evaluate(testX, testY, verbose=0)
print("Accuracy: %.2f%%" % (scores[1]*100))
我对 keras 工具包的理解是,如果 trainX 的 3D 张量的形状为 (41311,10,43),那么 keras 应该创建一个具有 10 个时间步长的 lstm。如果是这样,那么为什么屏幕截图中的示例会一一运行;如果时间步长为 10,那么它应该以 10 个批次运行并获得 10 个预测,然后运行接下来的 10 个样本批次。
任何人都可以回答我:为什么截图显示样本在时间步长为 10 时一个一个运行?
【问题讨论】:
标签: tensorflow deep-learning keras