1 回答
![?](http://img1.sycdn.imooc.com/545868330001e54e02200220-100-100.jpg)
TA贡献1860条经验 获得超8个赞
我认为问题在于卷积 LSTM 层需要图像的时间序列,因此它必须具有 5 个维度,包括批量维度,因此形状为(B, T, H, W, C)
。您已将输入形状(忽略批量维度)定义为(None, 64, 64, 3)
,因此您需要输入形状为 的批量张量(batch, timesteps, 64, 64, 3)
。
另外,我认为fit_generator()
不赞成将生成器传递给fit()
.
编辑:如果您有视频流中的一系列帧,您可以将它们堆叠到一个多维的数组中。您必须以正确的顺序从目录中手动获取图像,然后创建一个数据迭代器:
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)
添加回答
举报