Почему существует периодическая схема потери поезда при распознавании меток в контролируемом обучении, реализованная в тензорном потоке? - PullRequest
1 голос
/ 09 октября 2019

Я столкнулся со странным периодическим паттерном потери поезда в задаче классификации меток с использованием AdamOptimzer в тензорном потоке.

Как показано на рисунке, потеря поезда слегка увеличивалась с внезапным падением в каждую эпоху. Какова возможная причина этого?

train loss

AdamOptimizer используется со скоростью обучения разогрева + полиномиального затухания.

opt = tf.train.AdamOptimizer(learning_rate=learning_rate, epsilon=0.00001)
train_op = opt.optimize(cross_entropy_loss, lr)

Конвейер данных описан ниже.

# data pipeline
dataset = tf.data.Dataset.list_files(tfrecords_names)

# shuffle filenames
dataset = dataset.shuffle(buffer_size=config.num_parallel_readers)

# repeat filename lists
dataset = dataset.repeat(config.epoch)

dataset = dataset.interleave(tf.data.TFRecordDataset,
                                cycle_length=config.num_parallel_readers)

# parse samples
dataset = dataset.map(map_func=parse_record,
                        num_parallel_calls=config.num_parallel_calls)

# prefetch samples
dataset = dataset.prefetch(buffer_size=config.prefetch_buffer_size)

# shuffle samples
dataset = dataset.shuffle(buffer_size=config.shuffle_buffer_size)

# make a batch
dataset = dataset.batch(config.batch_size)
...