2015-10-30 3 views
1

Я запускаю свою модель VW в тестовом режиме (используя флаг -t) с -q SE SZ DR, где S, E, Z, D, R - это мои пространства имен. Тогда я сталкиваюсь в следующем предупреждение в диагностической распечатке:Должен ли я указывать те же квадратичные функции для обучения и тестирования в Vowpal Wabbit?

WARNING: model file has set of {-q, --cubic, --interactions} settings stored, but they'll be OVERRIDEN by set of {-q, --cubic, --interactions} settings from command line.

Таким образом, вопрос: при создании квадратичных функций, я должен указать те же пространство имен после -q флага, когда испытания, которые были использованы для обучение?

Сначала я решил, что да, мне лучше сделать это, потому что иначе: (а) либо квадратичные функции не будут созданы, и они будут игнорироваться при тестировании; (б), или они будут созданы, но хешированы до ведер, отличных от тех, которые находятся в наборе тренировок. Оба способа ухудшат производительность, вот что я думал. Но вышеупомянутое предупреждение заставляет меня сомневаться. Как работает VW в этом случае?

ответ

1

Как указано в предупреждении, параметры, которые уже сохранены (сохранены) в файле модели, не должны повторяться (или изменяться) в командной строке.

Другими словами: если вы тренировались с использованием взаимодействий -q XY ..., эти взаимодействия уже были сохранены в модели. Они инициализируются при загрузке модели при запуске (с -i model_file), поэтому нет причин включать (повторно) их в командной строке.

Не все параметры командной строки являются устойчивыми по модели: например, по умолчанию функция потерь (--loss_function ...) не сохраняется в модели, поэтому, если вы запускаете регрессию, вы можете изменить функцию потерь с каждой тестовый забег. Очень полезная функция.

Вы всегда можете указать, какие опции сохраняются в модели, создав «читаемую модель» с помощью --readable_model file_name и глядя на ее заголовок (первые несколько строк).

 Смежные вопросы

  • Нет связанных вопросов^_^