Подтвердить что ты не робот

Theano CNN на CPU: AbstractConv2d Не удалось оптимизировать Theano

Я пытаюсь обучить CNN для обнаружения объектов на изображениях с помощью набора данных CIFAR10 для семинара в моем университете, но я получаю следующую ошибку:

AssertionError: AbstractConv2d Оптимизация Theano не удалась: нет доступная поддержка запрошенных вариантов. Вы были исключить из оптимизатора "conv_dnn" и "conv_gemm"? Если на GPU, доступно cuDNN и поддерживает ли GPU? Если на процессоре у вас есть библиотека BLAS, установленная Theano, может связываться с?

Я запускаю Anaconda 2.7 в ноутбуке Jupyter (обучение CNN на процессоре) с компьютера Windows 10. Поскольку я уже обновил новую версию anano с помощью git clone, я пробовал следующие вещи:

  • исключить dnn и gemm непосредственно из кода THEANO_FLAGS='optimizer_excluding=conv_dnn, optimizer_excluding=conv_gemm'
  • исключить dnn и gemm непосредственно из команды cmd THEANO_FLAGS='...' python <myscript>.py, которая не вызывает неожиданно ошибки "неизвестной команды".
  • исключить dnn и gemm из .theanorc.txt, который я ввел в C:/user/myusername

К сожалению, я все еще получаю ту же ошибку, и когда я вызываю print(teano.config), термины "conv_dnn" и "conv_gemm" не отображаются.

  • Кроме того, я попытался выяснить, какой BLAS использует мой пакет numpy (что обычно хорошо работает), и если этот пакет статичен с помощью инструмента dependencywalker.com, но я терпел неудачу

Итак, вот мой вопрос: как я могу правильно установить флаги-аанано и как проверить, выполнил ли я это? Если это не поможет, как я могу проверить, какой BLAS я создаю? Какой я должен использовать и как я могу изменить зависимость для theano?

Как вы, возможно, догадались, я не эксперт, когда дело доходит до всего этого пакета, зависимости, встроенных и других причудливых материалов по компьютерной науке и документации, которую я нахожу, это просто не доказательство нуба, поэтому я был бы очень благодарен, что вы, ребята, может помочь мне!

Лучшие

Джонас

4b9b3361

Ответ 1

Добавьте одну строку в файл .theororc

optimizer = None

как глобальная конфигурация.

Ответ 2

У меня было такое же сообщение об ошибке в Windows. Мой файл ".theanorc.txt", расположенный в "C:\Users\USERNAME \.theanorc.txt", был неправильно отформатирован, и библиотека The Blas не была найдена Theano. Это можно увидеть в консоли Python, написав "import theano; theano.config.blas.ldflags", который дал пустую строку (''). Ключевое слово blas должно быть как заголовок раздела.

[global]
floatX = float32
device = cpu

[blas]
ldflags = -LC:\\openblas -lopenblas

В C:\openblass path У меня есть файлы: libgcc_s_seh-1.dll, libgfortran-3.dll, libopenblas.dll и libquadmath-0.dll. См. http://deeplearning.net/software/theano/library/config.html

Ответ 3

У меня была такая же проблема, но в Linux. Оказалось, что BLAS не был установлен вообще, и мне пришлось установить его отдельно, включая установку некоторых новых переменных среды:

export LD_LIBRARY_PATH="/home/username/anaconda2/lib"
export LD_PRELOAD="/home/username/anaconda2/lib/libmkl_core.so:/home/MEDIANET/aharjunm/anaconda2/lib/libmkl_sequential.so"

Я также должен был убедиться, что между anaconda и любой предыдущей установкой python не было конфликтов между путями python.

Я знаю, что это будет сильно отличаться под Windows, но поскольку сообщение об ошибке точно так же, основная предпосылка для лечения должна быть такой же: установить BLAS. Вы можете найти много источников для этого, например здесь.