我正在尝试使用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'
THEANO_FLAGS='...' python <myscript>.py
中排除dnn和gemm,这并不会令人惊讶地发出“未知命令”错误。不幸的是,我仍然遇到同样的错误,当我致电print(teano.config)
时,“conv_dnn”和“conv_gemm”这两个字词都没有出现。
所以这是我的问题:我怎样才能正确地设置theano标志,如何检查我是否已经这样做了?如果这没有帮助,我该如何检查我正在构建的BLAS?我应该使用哪一个?如何更改theano的依赖?
正如你可能已经猜到的那样,当涉及到所有这些包,依赖,构建和其他花哨的计算机科学的东西以及我发现的文档只是不是noob证明时我不是专家所以我会非常感激我们你们可以帮助我!
最佳
纳斯
答案 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。