Я использую theano и lasagne для проекта улучшения речи DNN. Я использую сеть передачи данных, очень похожую на пример mnist в документации по lasagne (/github.com/Lasagne/Lasagne/blob/master/examples/mnist.py). В этой сети используется несколько уровней отсева. Я тренирую свою сеть на графическом процессоре Nvidia Titan X. Однако, когда я не использую исключение, мое использование графического процессора составляет приблизительно 60%, а одна эпоха занимает около 60 с, но когда я использую исключение, мое использование графического процессора падает до 8%, а каждая эпоха занимает приблизительно 600 секунд. Это независимо от коэффициента отсева устанавливается на 20% или 0,1%.Лазерный проигрыватель не использует графический процессор эффективно
Первоначально я думал, что это связано с генератором случайных чисел (RNG), используемым для создания маски отбрасывания, которая не запускалась на графическом процессоре. Тем не менее, в коде (https://github.com/Lasagne/Lasagne/blob/master/lasagne/layers/noise.py), похоже rng_mrg используется, который должен быть запущен на GPU на основе этой ссылке: http://deeplearning.net/software/theano/tutorial/examples.html#other-implementations
Запуск в Theano профайлер показывает, что «theano.sandbox.rng_mrg.mrg_uniform» занимает 86,7 % от времени выполнения, которое я не понимаю.
Если у кого-то есть представление о том, что убивает мое использование графического процессора, я был бы признателен.
Большое спасибо. Это решило мою проблему. Я написал свой hack/solution ниже –