Theano CNN on CPU: AbstractConv2d Theano optimization failed

Jonasson picture Jonasson · May 1, 2016 · Viewed 9.4k times · Source

I'm trying to train a CNN for object detection on images with the CIFAR10 dataset for a seminar at my university but I get the following Error:

AssertionError: AbstractConv2d Theano optimization failed: there is no implementation available supporting the requested options. Did you exclude both "conv_dnn" and "conv_gemm" from the optimizer? If on GPU, is cuDNN available and does the GPU support it? If on CPU, do you have a BLAS library installed Theano can link against?

I am running Anaconda 2.7 within a Jupyter notebook (CNN training on CPU) from a Windows 10 machine. As I already have updated to the newest theano version using git clone I tried the following things:

  • exclude dnn and gemm directly from within the code THEANO_FLAGS='optimizer_excluding=conv_dnn, optimizer_excluding=conv_gemm'
  • exclude dnn and gemm directly from cmd typing THEANO_FLAGS='...' python <myscript>.py which not suprisingly gives an "unknown command" error.
  • exclude dnn and gemm from a .theanorc.txt which I put into C:/user/myusername

Unfortunately, I still get the same error and when I call print(teano.config) the terms "conv_dnn" and "conv_gemm" do not appear.

  • Furthermore I tried to find out what BLAS my numpy package is using (which generally works well for) and if that package is static using a tool from dependencywalker.com but I failed miserably

So here's my question: How on earth can I set the theano flags properly and how can I check if I suceeded in doing so? If that doesn't help, how can I check what BLAS I am building? Which one should I use and how can I change the dependency for theano?

As you might have guessed I am not an expert when it comes to all this package, dependency, built and other fancy computer science stuff and the documentation I find only is just not noob proof so I would be most grateful I you guys could help me out!

Best

Jonas

Answer

Heo Hee-Soo picture Heo Hee-Soo · May 27, 2016

Add one line to .theanorc file

optimizer = None

as a global configuration.