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

2024-04-24 01:22:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我大学的一个研讨会训练CNN用CIFAR10数据集对图像进行目标检测,但是我得到了以下错误:

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?

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

  • 直接从代码中排除dnn和gemm THEANO_FLAGS='optimizer_excluding=conv_dnn, optimizer_excluding=conv_gemm'
  • 直接从命令类型THEANO_FLAGS='...' python <myscript>.py中排除dnn和gemm,这不会令人意外地产生“未知命令”错误。
  • 从.theanoc.txt中排除dnn和gemm,我将其放入C:/user/myusername

不幸的是,我仍然会遇到同样的错误,当我调用print(teano.config)时,术语“conv-dnn”和“conv-gemm”不会出现。

  • 此外,我试图找出我的numpy包在使用什么BLAS(这通常很好地工作),如果这个包是静态的,使用dependencywalker.com的工具,但我失败得很惨

所以我的问题是:我究竟如何才能正确地设置西亚诺旗帜,如何才能检查我是否成功地设置了西亚诺旗帜?如果这没用,我怎么能检查我在建什么BLAS?我应该使用哪一个,如何更改对该节点的依赖关系?

你可能已经猜到了,我不是一个专家,当涉及到所有这些包,依赖,构建和其他花哨的计算机科学的东西和文件,我发现只是没有证据,所以我将非常感谢,我可以帮助我的家伙!

最好的

乔纳斯


Tags: andtheyouifison错误theano
3条回答

在.theanoc文件中添加一行

optimizer = None

作为全局配置。

我也有同样的问题,但在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

我在Windows上也有同样的错误信息。位于“C:\ Users\USERNAME\.theanoc.txt”中的“.theanoc.txt”文件的格式不正确,并且该编号找不到Blas库。这可以在Python控制台中通过编写“import theano;theano.config.blas.ldflags”看到,它给出了空字符串('')。blas关键字必须作为节头。

[global]
floatX = float32
device = cpu

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

C:\ openblass路径中,我有文件:libgcc_s_seh-1.dlllibgfortran-3.dlllibopenblas.dlllibquadmath-0.dll。 参考http://deeplearning.net/software/theano/library/config.html

相关问题 更多 >