2017-12-19 4 views
0

Wie können Hyperparameter in TensorFlow geplant werden?Wie wird der Hyperparameter (Lernrate) Zeitplan in TensorFlow eingestellt?

Aus Gründen der Reproduzierbarkeit möchte ich ein ResNet implementieren (Sie einen) mit der vorgeschlagenen Lernrate Zeitplan {0: 0,1, 1: 1, 100: 0,01, 150: 0,001}, oder aktivieren Sie die Gewichtsabnahme erst nach den ersten Anfangsepochen.

Zum Beispiel stellt tensorpack ein optionas folgt:

ScheduledHyperParamSetter('learning_rate', [(1, 0.1), (82, 0.01), (123, 0.001), (300, 0.0002)]) 

Wie kann das in nativer TF getan werden?

Antwort

0

Ok, es war nicht so schwer

schedule = {1: 0.1, 2: 0.2, 3: 0.3, 4: 0.4, 100: 0.01, 150: 0.001} 
    schedule = sorted(config.lr_schedule.items(), key=lambda x: x[0]) 

    boundaries = [num_train_iter * int(x[0]) for x in schedule] 
    rates = [x[1] for x in schedule] 
    rates = rates[:1] + rates # 
    assert len(boundaries) + 1 == len(rates) 

    learning_rate = tf.train.piecewise_constant(tf.cast(global_step, tf.int32), boundaries, rates) 
Verwandte Themen