我已经被这个问题困了一段时间了。基本上,我有一个 (sample, [frame], feature) 的参差不齐的张量作为我的数据集,其中每个视频的帧数不同,但每个帧中的特征是一致的。尝试使用 train_test_split 拆分数据集时出现错误。
x = RaggedTensor.from_row_lengths(values=xwindow, row_lengths=zz)
y = np.array(labels) # (120,)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=test_size)
这是错误信息
raise TypeError(_SLICE_TYPE_ERROR + ", got {!r}".format(idx))
TypeError: Only integers, slices (`:`), ellipsis (`...`), tf.newaxis (`None`) and scalar tf.int32/tf.int64 tensors are valid indices, got array([ 29, 92, 69, 96, 12, 115, 48, 35, 56, 76, 109, 83, 52,
21, 91, 94, 78, 73, 84, 2, 24, 19, 72, 18, 102, 1,
106, 7, 104, 26, 80, 65, 22, 43, 116, 74, 49, 42, 105,
34, 70, 41, 110, 51, 54, 3, 63, 53, 112, 119, 60, 0,
66, 10, 55, 45, 67, 9, 113, 61, 117, 40, 37, 98, 100,
13, 87, 33, 95, 36, 31, 14, 88, 68, 20, 62, 85, 108,
64, 86, 97, 82, 16, 89])
我的一些同事建议我在最后一帧/第一帧中使用填充,或者复制整个视频以使其与其他视频的长度相同,这样我就可以制作相同长度的张量。但我对这个建议感到担忧。
所以我的问题是我可以在不使用填充或复制整个视频的情况下解决这个问题吗?
谢谢!