R-Net
- Внедрение TensorFlow of R-Net: понимание прочитанного машины с сети самоповреждения. Этот проект специально разработан для набора данных команды.
- Если у вас есть какой -либо вопрос, пожалуйста, свяжитесь с Wenxuan Zhou ([email protected]).
Требования
Было много известных проблем, вызванных использованием различных программных версий. Пожалуйста, проверьте свои версии, прежде чем открывать проблемы или отправить мне электронное письмо.
Общий
- Python> = 3,4
- Расцип, wget
Python Packages
- tensorflow-gpu> = 1.5.0
- Spacy> = 2,0,0
- TQDM
- Уджсон
Использование
Чтобы загрузить и предварительно обрабатывать данные, запустите
# download SQuAD and Glove
sh download.sh
# preprocess the data
python config.py --mode prepro
Гипер параметры хранятся в config.py. Чтобы отлаживать/тренировать/проверить модель, запустить
python config.py --mode debug/train/test
Чтобы получить официальный счет, беги
python evaluate-v1.1.py ~ /data/squad/dev-v1.1.json log/answer/answer.json
Каталог по умолчанию для файла журнала Tensorboard - это log/event
См. Выпуск для обученной модели.
Подробная реализация
- Оригинальная статья использует аддитивное внимание, которое потребляет много памяти. Этот проект принимает масштабированное мультипликативное внимание, представленное в внимании, - это все, что вам нужно.
- Этот проект принимает вариационное отсечение, представленное в теоретически обоснованном применении отсева в рецидивирующих нейронных сетях.
- Чтобы решить проблему деградации в сложенном RNN, выходы каждого слоя объединяются для получения конечного вывода.
- Когда убыток на установке DEV увеличивается в определенном периоде, скорость обучения сокращается вдвое.
- Во время прогноза проект принимает метод поиска, представленного в понимании машины с использованием указателя Match-LSTM и ответа.
- Чтобы решить проблему эффективности, в этой реализации используется метод ведения ведения (вносясь Сюйонгифаном) и Cudnngru. Метод ведения ведения может ускорить тренировку, но снизит оценку F1 на 0,3%.
Производительность
Счет
| ЭМ | F1 |
|---|
| Оригинальная бумага | 71.1 | 79,5 |
| этот проект | 71.07 | 79,51 |


Время обучения (S/IT)
| Родной | Родной + ведро | Cudnn | Cudnn + ведро |
|---|
| E5-2640 | 6.21 | 3.56 | - | - |
| Титан х | 2.56 | 1.31 | 0,41 | 0,28 |
Расширения
Эти настройки могут увеличить оценку, но не используются в модели по умолчанию. Вы можете включить эти параметры в config.py .
- Предварительно проведенный персонаж перчатки. Внесен янганси.
- Фасттекстовый встраивание. Внесен Скьонгифаном. Может увеличить F1 на 1% (сообщается Скюрифан).