Установка скорости обучения по частям в TensorFlow Estimator API

Я хочу настроить кусочную скорость обучения для объекта оценки тензорного потока, пока что я делаю так

boundaries = [100000, 200000, 300000]
values = [0.1, 0.05, 0.01, 0.001]
global_step = tf.train.get_global_step()
learning_rate = tf.train.piecewise_constant(global_step, boundaries, values)

а затем создать Оценщик с этими параметрами модели.

Выдает ошибку ValueError: None values not supported., поскольку значение глобального шага НЕТ.

С другой стороны, когда я создаю global_step = tf.Variable(0, trainable=False), создается тензор скорости обучения, но позже он терпит неудачу при вызове создания объекта оценки. Уже проверял это: Как использовать убывающая скорость обучения с оценкой в ​​тензорном потоке?


person user3538035    schedule 07.06.2018    source источник
comment
Это очень важный вопрос, почему он был отклонен и помечен как закрытый? Причины не указаны.   -  person vijay m    schedule 07.06.2018


Ответы (1)


Вместо этого используйте tf.train.get_or_create_global_step(), он создаст для вас глобальный шаг с его ожидаемое определение.

person P-Gn    schedule 07.06.2018
comment
спасибо за предложение. Я попробовал, и теперь он выдает другую ошибку при создании объекта оценщика. TypeError: невозможно обработать объекты _thread.RLock. Глядя на стек, он запускает функцию инициализации из Estimator.py при вызове глубокой копии. self._params = copy.deepcopy (params или {}) - person user3538035; 07.06.2018