Как использовать chainer.using_config, чтобы остановить F.dropout в процессе оценки / прогнозирования в цепочке?
F.dropout используется только в поезде, я запутался, как использовать в нем chainer.using_config? Как это работает и как понять, как это происходит на тренировке или предсказывать?
1 ответ
Начиная с Chainer v2, поведение функции контролируется config
переменная, в соответствии с официальным документом,
chainer.config.train
Флаг режима тренировки. Если это правда, Chainer работает в режиме обучения. В противном случае он работает в режиме тестирования (оценки). Значение по умолчанию верно.
Вы можете контролировать это config
следуя двум путям.
1. Просто назначьте значение.
chainer.config.train = False
here, code runs in the test mode, and dropout won't drop any unit.
model(x)
chainer.config.train = True
2. with using_config(key, value)
обозначение
Если мы используем вышеупомянутый случай, вам может потребоваться установить True
а также False
часто цепочник обеспечивает with using_config(key, value)
запись, чтобы облегчить эту настройку.
with chainer.using_config('train', False):
# train config is set to False, thus code runs in the test mode.
model(x)
# Here, train config is recovered to original value.
...
Примечание 1: если вы используете trainer
moudule, Evaluator
будет обрабатывать эти конфигурации автоматически во время проверки / оценки (см. документ или исходный код). Это значит train
конфиг установлен на False
и отсев выполняется в качестве режима оценки при расчете потерь проверки.
Заметка 2: train
config используется для переключения режима "поезд" и "оценка / проверка". Если вам нужно "предсказать" код, его нужно реализовать отдельно.