При использовании pycaffe для запуска solver.solve() выполняется только одна итерация, затем текущий процесс завершается

#neural-network #deep-learning #caffe #pycaffe

#нейронная сеть #глубокое обучение #caffe #pycaffe

Вопрос:

Я использую pycaffe для выполнения задачи классификации с несколькими метками. Когда я запускаю solver.slove() или solver.step(2) , выполняется только одна итерация, затем текущий процесс каким-то образом завершается. консоль ipython сообщает, что ядро неожиданно умерло. Никакая другая информация об ошибке не предоставляется. Затем я использую терминал для запуска команды «python Test.py » и получите информацию об «Исключении с плавающей запятой (сброс ядра)».

введите описание изображения здесь

Кроме того, методы net.forward() и net.backward() все в порядке. В чем причина? И как решить проблему?

введите описание изображения здесь

Комментарии:

1. Вы работаете на CPU или GPU?

2. вы пытались обучать из командной строки? caffe train --solver yoursolver.prototxt . Если вам удастся запустить из командной строки, затем повторно создайте caffe с отладочной информацией и запустите команду обучения из gdb. Это, вероятно, приведет к некоторой ценной информации о том, где именно происходит сбой. Оттуда намного проще помочь.

3. @Shai Я использую режим GPU. И я использую слой данных python для загрузки изображений, поэтому я не могу обучаться из командной строки. Я подозреваю, что именно обновление параметров вызывает исключение с плавающей запятой. Потому что я могу создать сеть, загрузить данные, удалить обработку данных в больших двоичных объектах и показать их. Более того, могут выполняться как методы net.forward(), так и backward(), и информация для печати также может выполняться до метода ApplyUpdate() в исходном коде решателя.

4. @RobinsonDavid попробуйте запустить в режиме процессора.

5. @Shai Я обнаружил, что ApplyUpdate() вызывает метод GetLearningRate(), и этот метод GetLearningRate() имеет такой код: this->iter_ / this->param_.stepsize() И я обнаружил, что я не указываю размер шага в solver.prototxt. Возможно, существует исключение / 0. Я скоро попробую. Большое спасибо за обсуждение со мной.