CPU上的Theano CNN:AbstractConv2d Theano优化失败

时间:2016-05-01 09:15:23

标签: python neural-network cpu theano blas

我正在尝试使用CIFAR10数据集训练CNN在图像上进行物体检测,以便在我的大学举办研讨会,但是我得到以下错误:

  

AssertionError:AbstractConv2d Theano优化失败:没有   可用的实现支持所请求的选项。你是否   从优化器中排除“conv_dnn”和“conv_gemm”?如果在GPU上,   是cuDNN可用,GPU支持吗?如果在CPU上,你有吗?   一个BLAS库安装Theano可以链接?

我在Windows 10机器上的Jupyter笔记本(CPU上的CNN培训)中运行Anaconda 2.7。由于我已经使用git clone更新到最新的theano版本,我尝试了以下方法:

  • 直接从代码THEANO_FLAGS='optimizer_excluding=conv_dnn, optimizer_excluding=conv_gemm'
  • 中排除dnn和gemm
  • 直接从cmd键入THEANO_FLAGS='...' python <myscript>.py中排除dnn和gemm,这并不会令人惊讶地发出“未知命令”错误。
  • 从我放入C:/ user / myusername
  • 的.theanorc.txt中排除dnn和gemm

不幸的是,我仍然遇到同样的错误,当我致电print(teano.config)时,“conv_dnn”和“conv_gemm”这两个字词都没有出现。

  • 此外,我试图找出我的numpy包正在使用什么BLAS(通常效果很好),如果使用来自dependencywalker.com的工具该包是静态的,但我失败了

所以这是我的问题:我怎样才能正确地设置theano标志,如何检查我是否已经这样做了?如果这没有帮助,我该如何检查我正在构建的BLAS?我应该使用哪一个?如何更改theano的依赖?

正如你可能已经猜到的那样,当涉及到所有这些包,依赖,构建和其他花哨的计算机科学的东西以及我发现的文档只是不是noob证明时我不是专家所以我会非常感激我们你们可以帮助我!

最佳

纳斯

3 个答案:

答案 0 :(得分:16)

在.theanorc文件中添加一行

optimizer = None

作为全局配置。

答案 1 :(得分:7)

我在Windows上有相同的错误消息。位于“C:\ Users \ USERNAME \ .theanorc.txt”中的“.theanorc.txt”文件格式错误,Theano找不到Blas库。这可以在Python控制台中看到,写入“import theano; theano.config.blas.ldflags”,它给出了空白字符串('')。 blas-keyword必须是节​​标题。

[global]
floatX = float32
device = cpu

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

C:\ openblass 路径中,我有文件: libgcc_s_seh-1.dll libgfortran-3.dll libopenblas .dll libquadmath-0.dll 。 请参阅http://deeplearning.net/software/theano/library/config.html

答案 2 :(得分:1)

我遇到了同样的问题但是在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。您可以找到大量的资源,例如here