Я закончил, используя tf.data.Dataset.filter
метод.Предикат сравнивает идентификаторы видео первого и последнего кадров.Если они разные, то вся партия отбрасывается:
def ensure_same_video_in_batch(video_ids, *args):
first_frame_video_id, last_frame_video_id = video_ids[0], video_ids[-1]
return tf.equal(first_frame_video_id, last_frame_video_id)
dataset = dataset.filter(ensure_same_video_in_batch)