1 回答

TA貢獻1860條經(jīng)驗 獲得超8個贊
我認為問題在于卷積 LSTM 層需要圖像的時間序列,因此它必須具有 5 個維度,包括批量維度,因此形狀為(B, T, H, W, C)
。您已將輸入形狀(忽略批量維度)定義為(None, 64, 64, 3)
,因此您需要輸入形狀為 的批量張量(batch, timesteps, 64, 64, 3)
。
另外,我認為fit_generator()
不贊成將生成器傳遞給fit()
.
編輯:如果您有視頻流中的一系列幀,您可以將它們堆疊到一個多維的數(shù)組中。您必須以正確的順序從目錄中手動獲取圖像,然后創(chuàng)建一個數(shù)據(jù)迭代器:
images = <ordered list of 3-D numpy arrays>
img_seq = np.stack(images, axis=0)
# Do the above for each sequence of images in the training data to get N sequences
sequences = <list of sequences of images of length N>
labels = <array of labels of length N>
train_data = tf.data.Dataset.from_tensor_slices((sequence, labels))
train_data = train_data.shuffle(1000).batch(batch_size)
# Do similar for test data
然后您可以使用tf.data.Datasetin fit():
model.fit(train_data, validation_data=test_data)
添加回答
舉報