На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
Модераторы: RaD, nsh
  
> Kaldi LSTM C++, запустить обучение сети LSTM с помощью Kaldi
Доброго времени суток. Хочу использовать GPU для обучения сети LSTM, сейчас имеется полностью реализованный мной с нуля цикл обучения сети LSTM признаками MFCC+D+DD из WAV, но проблема в скорости обучения. Имеется огромное желание по сформированным мной признакам, обучить LSTM на GPU с помощью сторонней библиотеки. В нете пишут про Kaldi, но порог вхождения в эту библиотеку для меня высок, может кто нибудь поделиться опытом ???
https://github.com/dophist/kaldi-lstm
Цитата Abraziv @
В нете пишут про Kaldi, но порог вхождения в эту библиотеку для меня высок, может кто нибудь поделиться опытом ???


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



Это левый экспериментальный код, lstm давно есть уже в самом kaldi, например здесь https://github.com/kaldi-asr/kaldi/blob/mas...tdnn_lstm_1c.sh
http://nshmyrev.blogspot.com
Так вопрос собственно очень прост, как использовать эти .sh Я работаю под Windows. Курить всё библиотеку несколько месяцев, потом упереться во что нибудь и всё.
Под Windows Kaldi можно использовать только для декодирования. Для тренировки нужно осваивать Линукс. Его можно установить в виртуальной машине, например, в Virtualbox. Для GPU рекомендуется установить на железе.
http://nshmyrev.blogspot.com
Технический вопрос: нужна быстрая библиотека для обучения LSTM из под C++, с возможностью переключения GPU на CPU если видеокарты с поддержкой CUDA нет. Если нет возможности переключения, то по крайней мере необходима возможность сохранения весов в одном из принятых видов.

Добавлено
Походу адекватным решением будет, курение cuDNN.
Цитата Abraziv @
быстрая библиотека для обучения LSTM из под C++

CNTK

Цитата Abraziv @
переключения GPU на CPU если видеокарты с поддержкой CUDA нет

Это руками придется детектить. К тому же, обученная на CPU сеть не будет работать на GPU и наоборот.

Цитата Abraziv @
адекватным решением будет, курение cuDNN

Плохая идея. :)
Цитата XOOIOOX @
Это руками придется детектить. К тому же, обученная на CPU сеть не будет работать на GPU и наоборот.

Почему??? Какая разница??? Float и Double это стандартизированные вещи. nsh вопрос к тебе как Гуру тоже.
Цитата XOOIOOX @
Плохая идея.

Ну согласен, я имел ввиду Caffe2 какую нибудь)
Сообщение отредактировано: Abraziv -
Цитата Abraziv @
Float и Double

Дело не в формате чисел с плавающей, а в структуре самой сети. По крайней мере, в CNTK это разные сети. Наверное сделано для оптимизации.

Цитата Abraziv @
Caffe2
Пробовал. Какая-то "потная" и не очевидная история. В случае Ц++, конечно.

Еще есть TensorFlow, но с LSTM оно медленнее, чем CNTK.
Спасибо за ответы.
Цитата XOOIOOX @
Дело не в формате чисел с плавающей, а в структуре самой сети. По крайней мере, в CNTK это разные сети. Наверное сделано для оптимизации.

Это точно? Вы не ошиблись не где?
LSTM вообще медленно, сейчас все, кто быстро хочет, использует transformer с многоголовым вниманием.
http://nshmyrev.blogspot.com
Цитата nsh @

Вообще я для своей задачи пытался применить "чистый ЦОС", как бы не экспериментировал, не получилось. НН в этом плане чудесном образом аппроксимируют искомую мной функцию )))
Цитата Abraziv @
НН в этом плане чудесном образом


transformer это тоже нейросеть, но без циклов.
http://nshmyrev.blogspot.com
Цитата Abraziv @
Это точно?

Был не прав. В последних версиях (2.6) сделали полную взаимозаменяемость. В версии 2.1 все было раздельно и несовместимо друг с другом.
Цитата XOOIOOX @

Спасибо за ответ. Интересно , а в 2.5 тоже есть взаимозаменяемость...хм.
1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
0 пользователей:


Рейтинг@Mail.ru
[ Script Execution time: 0,1135 ]   [ 19 queries used ]   [ Generated: 23.10.18, 06:16 GMT ]