Где Ray.Tune создает модель против реализации возмущенных гиперпараметров - PullRequest
0 голосов
/ 04 октября 2019

Я новичок в использовании ray.tune. У меня уже есть моя сеть, написанная в модульном формате, и сейчас я пытаюсь включить ray.tune, но я не знаю, где инициализировать модель (вместо обновления возмущенных гиперпараметров), чтобы модель и веса не были повторно инициализированыкогда рабочий усекается и заменяется более эффективным работником.

Справочная информация

Я использую планировщик PBT из ray.tune, который создает число моделей (рабочих) num_samples, каждая из которых инициализированас другим набором выборочных гиперпараметров. Когда модель оценивается, если она работает плохо, она останавливается и загружает контрольную точку одного из самых эффективных работников. Как только он загружен (это глубокая копия сети), гиперпараметры возмущаются, и затем он будет работать до следующей оценки.
Класс MyTrainable должен иметь функции _setup, _train, _save и _restore. Настройка вызывает переменную конфигурации, и именно здесь реализуются новые выборочные гиперпараметры.

Мой вопрос: где должна быть определена оригинальная модель? Я могу легко реализовать обновленные HP в этом разделе. Но я не видел нигде в документации, где я могу передать предопределенную модель в функцию ray.tune.run. Если я сохраню функцию create_model () в _setup (), то это исключит ранее обученные веса, что является частью преимущества этого метода.

Код

Вот 3 функцииУ меня есть:

self._hyperparameters(config)    # redefines the self.opt options accoring to the new perturbations
self.model.update_optimizer(self.opt)  # redefines the optimizers using the new learning rates and the beta values for Adam

self.model = create_model(self.opt)   # Original function that defines the initial model and initializes the weights

1 Ответ

1 голос
/ 12 октября 2019

Create_model должен вызываться в _setup. _restore будет вызываться после _setup, а в restore модель должна быть обновлена ​​до весов, сохраненных в контрольной точке.

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