#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. Я скоро попробую. Большое спасибо за обсуждение со мной.