我正在尝试使用 CIFAR10 数据集为我大学的一个研讨会训练 CNN 以对图像进行对象检测,但我收到以下错误:
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 笔记本(CPU 上的 CNN 训练)中运行 Anaconda 2.7。因为我已经使用 git clone 更新到最新的 theano 版本,所以我尝试了以下操作:
- 直接从代码中排除 dnn 和 gemm
THEANO_FLAGS='optimizer_excluding=conv_dnn, optimizer_excluding=conv_gemm'
- 直接从 cmd 输入中排除 dnn 和 gemm
THEANO_FLAGS='...' python <myscript>.py
这并不令人惊讶地给出了“未知命令”错误。 - 从我放入 C:/user/myusername 的 .theanorc.txt 中排除 dnn 和 gemm
不幸的是,当我调用 print(teano.config)
时,我仍然遇到同样的错误。术语“conv_dnn”和“conv_gemm”没有出现。
- 此外,我尝试使用 dependencywalker.com 中的工具找出我的 numpy 包正在使用的 BLAS(这通常适用)以及该包是否是静态的,但我惨败了
所以这是我的问题:究竟如何才能正确设置 theano 标志以及如何检查是否成功?如果这没有帮助,我如何检查我正在构建的 BLAS?我应该使用哪一个以及如何更改对 theano 的依赖?
正如您可能已经猜到的那样,当涉及到所有这些包、依赖项、构建和其他花哨的计算机科学内容时,我不是专家,而且我找到的文档只是不是新手证明,所以我将非常感谢你们可以帮助我!
最佳
乔纳斯
最佳答案
在 .theanorc 文件中添加一行
optimizer = None
作为全局配置。
关于python - CPU : AbstractConv2d Theano optimization failed 上的 Theano CNN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36965010/