2015-07-28 4 views
1

Я хочу запустить vowpal wabbit в режиме обучения демона. Я нашел ссылку stackoverflow Read data from memory in Vowpal Wabbit?, но не получил, как указать имя файла модели. То, что я делаю, выполняетсяКак запустить vowpal wabbit в режиме демона

vw --save_resume -f ob/e/nsefut/VWDaemon/model.vw --quiet --daemon --port 26542 

а затем отправьте примеры. То, что я получил от ссылки, заключается в том, что мне нужно отправлять теги, начинающие «сохранять», чтобы vw понимал, что это данные обучения. Итак, я отправил его как

echo '2 save| b:1.0 c:2.8 ' | netcat localhost 26542 

Но я не могу найти файл модели. Было бы здорово, если бы для этого был учебник.

редактировать:

Plus между обучением в режиме демона, я также хочу, чтобы иметь возможность видеть коэффициенты до этого момента.

+1

Я полагаю, что в этой теме есть несколько вопросов: 1. «Я не могу найти файл модели» - bcs вы должны отправить 'save' или' save_filename' в vw, чтобы дать ему команду сбросить текущее состояние модели. 2. «Я хочу запустить vowpal wabbit в режиме обучения демона». VW всегда работает в режиме обучения, если вы не указали '-t' в командной строке. 3. Как получить только примеры? - отправлять их без ярлыков, например, 'echo 'mytest | b: 1,0 c: 2,8 '| netcat localhost 26542' и искать теги mytest в прогнозах ('-p' param) – truf

+0

и нужно ли нам запускать n vw экземпляры (режим демона с портом) для обучения модели n? – DarkHorse

+0

есть. vw способен обучать только одну модель. например только один регресс с весовыми характеристиками. Я думаю, он все еще может быть настроен (путем изменения кода на C++) для выполнения нескольких разных алгоритмов ML один за другим в каждом примере, когда он использует один и тот же регресс (например, коэффициенты пространственного пространства), например '--oaa' основан на последовательном вызове 'GD'. Но в результате будет только одна модель. Итак, один экземпляр = одна модель. – truf

ответ

3

Вы должны использовать команду echo 'save' | netcat localhost 26542, чтобы дать команду vw сбросить текущие коэффициенты регрессора в файл модели. Что касается получения значений коэффициентов pls, см. Это answer. Короче: вы не можете.

+0

Даже если '--readable_model' был поддержан в режиме демона, в некоторых случаях его невозможно будет использовать. В этом режиме vw сохраняет в ОЗУ заголовок строки для каждой вновь обнаруженной функции. Таким образом, может потребоваться слишком много ОЗУ, если значение '-b' велико, и вы играете с' -q --cubic --interactions'. Я разработал небольшое дополнение для VW, которое позволяет ему «разворачивать» файлы моделей. В этом режиме VW загружает файл модели, считывает данные поезда, проверяет, имеет ли каждая функция ненулевой вес, печатает его и прикладывает вес к нулю, если это так. Таким образом, он требует того же объема ОЗУ, но 2 передает другой такой же набор данных. – truf

+0

И что я написал, это правильно? если я отправлю тег, начинающийся с «save», это будут только те, которые используются для обучения правильно? Те, которые я отправляю без каких-либо тэгов или так, будут использоваться только для прогнозирования. – DarkHorse

+1

«Сохранить» должен быть не тегом, а ярлыком. Поэтому он не должен касаться «|». Вам не нужно указывать какие-либо данные с «save». Просто отправьте «сохранить» в качестве всего примера. Отправьте его между примерами, когда вам это нужно. Он не будет использоваться для обучения или прогнозирования, поскольку у него нет данных. Я подозреваю, что если вы укажете данные с примером, который имеет метку «Сохранить», тогда эти данные будут просто проигнорированы. – truf