Tuesday 1 December 2015

XGBoost, python и AttributeError: 'NoneType' object has no attribute 'XGDMatrixFree'

XGBoost - одно из популярнейших средств для data mining в последние полгода-год.
Это нативная библиотека + врапперы для всяких python, R, и даже Java!


В случае python, причем - "Иногда" с ним бывают проблемы, как то:

[2999]  cv-test-rmspe:0.171434+0.067778 cv-train-rmspe:0.038854+0.000129                                                                                                                                           
Exception ignored in: <bound method DMatrix.__del__ of <xgboost.DMatrix object at 0x7f0aedac27f0>>                                                                                                                 
Traceback (most recent call last):                                                                                                                                                                                 
  File "/usr/local/lib/python3.4/dist-packages/xgboost-0.40-py3.4.egg/xgboost.py", line 188, in __del__                                                                                                            
AttributeError: 'NoneType' object has no attribute 'XGDMatrixFree'  


Причем вроде бы все в порядке, и - ошибка "плавающая". То есть иногда, на некоторых данных и в некоторых случаях - падает, а иногда - нет. Почитал я, как народ плачет, и - решил разобраться, как же так. 

Рассказываю! )

Ошибка возникает, если в python есть вызов exit() / sys.exit()

Итак. xgboost - штука многопоточная, написанная на openMP
Внутри все очень красиво.

#pragma omp parallel for shared(a, b, c) private(i)
   for (i = 0; i < 100500; i++)
     c[i] = a[i] + b[i];

Красивые аннотации и все такое. Реализация многопоточности от разработчика скрыта. Вопросы синхронизации - вопрос тот еще. Данные в общей памяти, все красиво и удобно.

Как работает при этом Python exit. Он кидает SystemExit. Ну а дальше понятно - xgboost не закончил, а враппер уже получил exception и - бабах!

Варианты лечения: 

1) Не лечить. Я серьезно.
2) Поставить time.sleep в python
3) Не использовать exit! 

Вообще, конечно, забавно. 

Monday 30 June 2014

КОНТРАСТИВНЫЕ ИССЛЕДОВАНИЯ И ПРИКЛАДНАЯ ЛИНГВИСТИКА

Здравствуйте!  Передаю сообщение нашего коллеги А.В.Зубова (МГЛУ, Минск) о предстоящей конференции. ОМ
--------------------------
Приглашаем принять участие в работе Международной научно-практической конференции «КОНТРАСТИВНЫЕ ИССЛЕДОВАНИЯ И ПРИКЛАДНАЯ ЛИНГВИСТИКА»
Конференция состоится 29–30 октября 2014 года
в Минском государственном лингвистическом университете
(220021, г. Минск, ул. Захарова, 21, ст. метро «Площадь Победы»)
В рамках конференции предполагается обсудить следующие вопросы:
  1. Теоретические аспекты прикладной лингвистики.
  2. Текст и дискурс в контрастивно-типологическом аспекте.
  3. Лексические и грамматические единицы в разных языках и культурах.
  4. Вопросы литературы и культурологии в контрастивном освещении.
  5. Проблемы перевода текстов.
  6. Технологии извлечения информации из Интернета и ее обработка.
  7. Автоматический анализ и синтез текстов.
  8. Корпусные исследования.
  9. Контрастивная лингвистика и вопросы преподавания языков.
  10. Компьютерная лингводидактика.

Sunday 15 June 2014

EEG - even with up/down/left/right movements! )))

https://www.dropbox.com/s/zbudiu1twmd70cv/data_eeg_mouse_2.tar.gz


tree data
data
├── behavior.dat
├── classes
│   ├── down
│   │   ├── 0_beh.dat
│   │   ├── 0_raw.dat
│   │   ├── 10_beh.dat
│   │   ├── 10_raw.dat
│   │   ├── 11_beh.dat
│   │   ├── 11_raw.dat
│   │   ├── 12_beh.dat
│   │   ├── 12_raw.dat
│   │   ├── 13_beh.dat
│   │   ├── 13_raw.dat

Framework for eeg-capturing - first working dataset

Framework for eeg- capture and behavior syncing is completed, so, first machine learning - ready dataset :-)

(simple  one-channel device, raw data)

https://www.dropbox.com/s/61c4k8g3edh4h5r/data_eeg_mouse_1.tar.gz

Funny, if somebody will make a diagnosis )))))

Wednesday 4 June 2014

Национальный корпус русского языка объявляет конкурс проектов дизайна страниц корпуса

Дорогие коллеги!
Пожалуйста, доведите эту информацию до всех, кто может быть в ней заинтересован.
Национальный корпус русского языка объявляет конкурс проектов дизайна страниц корпуса в трех номинациях:
Лучший проект дизайна страниц форм запроса.
Лучший проект дизайна поисковой выдачи.
Лучший проект дизайна мобильной версии корпуса.
К участию в конкурсе представляются страницы HTML + CSS + JavaScript (при необходимости скрипты серверной части). Макеты в графических форматах (jpg, gif и т.д.) не рассматриваются.
Принимать участие в конкурсе могут как отдельные разработчики, так и творческие коллективы (физические и юридические лица). Численность коллектива не ограничивается.
Представленные на конкурс проекты должны сохранять всю существующую функциональность страниц (как запроса, так и выдачи), иметь современный, приятный и удобный дизайн. Приоритет будет отдаваться работам, которые смогут расширить возможности интерфейса в следующих направлениях:
Авторизация пользователей (добровольная). У авторизованных пользователей должна появиться возможность хранить историю запросов, заданных подкорпусов и прочих настроек поиска и выдчи, комментировать новости на соответствующей странице.
Упрощенный интерфейс выбора подкорпуса и выбора тегов/значений из списков. В идеале весь запрос вместе с выбором подкорпуса должен формироваться на одной странице. При этом должна быть возможность генерировать списки значений для метаатрибутов автоматически по метатаблице.
Поиск по структурированным метаданным: авторам, издательствам и т. д.
Удобная система помощи и подсказок. Примеры запросов.
Опция показа пользователю грамматической и семантической информации о слове в формате выдачи KWIC (при словах, отвечающих запросу, и/или при словах ближайшего контекста). Информация должна содержаться в верстке страницы, а не во всплывающем окне.
Опция поиска по всем корпусам с учетом общих для всех корпусов параметров.
Работы должны быть представлены не позднее 15 октября 2014 года. Их следует присылать на электронный адрес info@ruscorpora.ru. Итоги конкурса будут подведены 31 октября 2014 года.
По всем вопросам следует обращаться на форум корпуса: http://studiorum.ruscorpora.ru/forum/.
В случае победы в конкурсе авторам будет предложен контракт на выполнение работ по реализации проекта на сайте ruscorpora.ru. На сайте будет размещена информация об авторе.

Всего доброго,
Борис Орехов