Предотвращение смешивания учебных примеров из разных файлов TFRecords - PullRequest
0 голосов
/ 14 октября 2018

Я тренирую модель по последовательностям видеокадров.У меня есть видео, которые хранятся в виде файлов tfrecords (каждое видео представляет собой отдельный файл tfrecords), каждый кадр закодирован как один файл tf.train.Example.Во время обучения я читаю партии кадров и провожу их через модель.Однако я вижу, что кадры из разных видео могут оказаться в одном пакете.Для модели, которую я тренирую, это не имеет смысла и фактически ухудшает производительность.Есть ли способ убедиться, что партия кадров содержит кадры только из того же видео?

1 Ответ

0 голосов
/ 14 октября 2018

Я закончил, используя 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)
...