InceptionV3, как эти методы связаны с темпами обучения? - PullRequest
0 голосов
/ 01 ноября 2019

Я тренирую классификатор с InceptionV3, и я хочу понять, что InceptionV3 делает с гиперпараметрами (tf.FLAGS), которые вы ему даете. В частности, как скорость обучения регулируется по мере продвижения.

def train(dataset):
  """Train on dataset for a number of steps."""
  with tf.Graph().as_default(), tf.device('/cpu:0'):
    # Create a variable to count the number of train() calls. This equals the
    # number of batches processed * FLAGS.num_gpus.
    global_step = tf.get_variable(
        'global_step', [],
        initializer=tf.constant_initializer(0), trainable=False)

    # Calculate the learning rate schedule.
    num_batches_per_epoch = (dataset.num_examples_per_epoch() /
                             FLAGS.batch_size)
    decay_steps = int(num_batches_per_epoch * FLAGS.num_epochs_per_decay)

    # Decay the learning rate exponentially based on the number of steps.
    lr = tf.train.exponential_decay(FLAGS.initial_learning_rate,
                                    global_step,
                                    decay_steps,
                                    FLAGS.learning_rate_decay_factor,
                                    staircase=True)

    # Create an optimizer that performs gradient descent.
    opt = tf.train.RMSPropOptimizer(lr, RMSPROP_DECAY,
                                    momentum=RMSPROP_MOMENTUM,
                                    epsilon=RMSPROP_EPSILON)

Сеть поставляется с некоторыми значениями по умолчанию, и я не уверен, стоит ли их настраивать. Я предполагаю, что эти параметры были тщательно оптимизированы Google. Например, значение по умолчанию num_of_epochs_per_decay установлено равным 30. Моя модель никогда не достигнет 30 эпох. Он будет обучаться не более 20. Означает ли это, что скорость обучения всегда будет одинаковой, поскольку она снижается только после 30 эпох? Я не знаю много о RMSProp, но я думал, что это изменяет скорость обучения. Если это так, я не уверен, почему есть два метода для изменения скорости обучения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...