Всем привет!

В этом году мне посчастливилось быть отобранным для участия в GSOC 2019. Я буду работать с цепочкой, и мой проект называется «Построение рекуррентных нейронных сетей для ChainerX».

Я впервые начал вносить свой вклад в базу кода ChainerX в марте. Я начал работать над созданием различных процедур, таких как сигмовидная диаграмма, возведение в степень. Члены библиотеки очень полезны и готовы помочь. Они помогли мне глубже понять постановку проблемы и их требования. Это, в свою очередь, помогло мне написать хорошее предложение.

Первую неделю я потратил в основном на изучение кодовой базы цепочки и понимание того, как рекуррентные нейронные сети были реализованы в цепочке. Я связался со своим наставником, и мы вкратце обсудили проект. Затем мой наставник дал мне конкретную процедуру для работы - n_step_lstm, которая в основном представляет собой n-слойную ячейку lstm. Загляните здесь для получения дополнительной информации о lstms.

Я начал с реализации этой процедуры на ЦП. Мне пришлось во многом разобраться самостоятельно. Это сильно отличалось от процедур, которые я построил раньше. Это было намного сложнее. Для меня самой захватывающей частью было возможность глубоко погрузиться в архитектуру LSTM, которая является одной из самых известных моделей глубокого обучения, используемых сегодня. На реализацию ЦП у меня ушло около 10 дней. Я многому научился на этом.

После этого мне пришлось начать с реализации GPU, в которой использовалась CUDNN, библиотека глубокой нейронной сети с ускорением на GPU, созданная NVIDIA. У меня был базовый опыт работы с CUDA в прошлом. Я начал с изучения документации CUDNN, которая поначалу была очень сложной. Я расскажу о своем глубоком опыте работы с CUDNN в следующем сообщении блога.

Будьте на связи!