web-dev-qa-db-ja.com

CPU上のTheano CNN:AbstractConv2d Theano最適化が失敗しました

大学でのセミナーのために、CIFAR10データセットを使用して画像上のオブジェクト検出のためにCNNをトレーニングしようとしていますが、次のエラーが発生します。

AssertionError:AbstractConv2d Theanoの最適化に失敗しました:要求されたオプションをサポートする利用可能な実装がありません。 「conv_dnn」と「conv_gemm」の両方をオプティマイザーから除外しましたか? GPUを使用している場合、cuDNNは利用できますか?GPUはそれをサポートしていますか? CPUの場合、TheanoがリンクできるBLASライブラリがインストールされていますか?

Windows 10マシンからJupyterノートブック(CPUでのCNNトレーニング)内でAnaconda 2.7を実行しています。私はすでにgit cloneを使用して最新のtheanoバージョンに更新したので、次のことを試しました。

  • コード内から直接dnnおよびgemmを除外する_THEANO_FLAGS='optimizer_excluding=conv_dnn, optimizer_excluding=conv_gemm'_
  • _THEANO_FLAGS='...' python <myscript>.py_をタイプしているcmdからdnnとgemmを直接除外します。
  • c:/ user/myusernameに入れた.theanorc.txtからdnnとgemmを除外します

残念ながら、それでも同じエラーが発生し、print(teano.config)を呼び出したときに、「conv_dnn」および「conv_gemm」という用語が表示されません。

  • さらに、私は私のnumpyパッケージが使用しているBLAS(これは一般的にうまくいく)を見つけようとしました、そしてそのパッケージがdependencywalker.comからのツールを使用して静的である場合、私は惨めに失敗しました

だからここに私の質問です:一体どうやってtheanoフラグを適切に設定できますか、どうすれば成功したかどうかを確認できますか?それでも問題が解決しない場合、どのBLASを構築しているかをどのように確認できますか?どちらを使用する必要がありますか。また、theanoの依存関係を変更するにはどうすればよいですか。

このパッケージ、依存関係、ビルドされたその他のファンシーなコンピューターサイエンス関連のものすべてについては、私はエキスパートではないと推測したかもしれませんが、私が見つけたドキュメントはまったく立証されていないので、皆さんに助けてもらえると本当にありがたいですでる!

ベスト

ジョナス

15
Jonasson

.theanorcファイルに1行追加する

optimizer = None

グローバル構成として。

16
Heo Hee-Soo

Windowsでも同じエラーメッセージが表示されました。 「C:\ Users\USERNAME\.theanorc.txt」にある「.theanorc.txt」ファイルの形式が正しくなく、BlasライブラリがTheanoで見つかりませんでした。これは、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.dllおよびlibquadmath-0.dllを参照してくださいhttp://deeplearning.net/software/theano/library/config.html

7
Sakari

Linuxで同じ問題が発生しました。 BLASはまったくインストールされていないことがわかりました。新しい環境変数の設定を含め、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 など、たくさんのソースを見つけることができます。

1
Azukikuru