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