0
我的数据是68871 x 43,其中的功能位于列号。 1-43和每个标签被表示为1x21矢量使用keras代码了解Netwok体系结构
以我keras代码:
- 打印trainX.shape ----->(41311,10,43)
- 打印trainY。 (41311,21)
- print testX.shape ------>(27538,10,43) 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工具包的理解是,如果3D张量trainX是形状(41311,10,43)的再keras应该创建一个LSTM 10步时间。如果是这样,那么为什么在屏幕截图中一个接一个地运行样本,如果时间步是10,那么它应该已经在10个批次中运行并获得10个预测,然后运行接下来的10批样本。
任何人都可以回答我:为什么屏幕截图显示样本在时间步10时一个一个地运行? 非常感谢。
因此,网络会在生成第一个预测(等等直到10个预测)之前等待10个事件/张量被输入? – user3218279
不,你建立它的方式是:1输入= 1个长度为10的张量的序列43.另一种说法是:1输入= 1 2D形状张量(10,43)。你有33048,因为它是41311的80%。 –
好的,这很清楚,非常感谢。我有一个不同的问题,那就是:在第一个2D形状张量(10,43)被送入它之后(或)它将等待第10个二维张量形状(10,43)在给出第一个预测之前喂食吗? – user3218279