大学でのセミナーのために、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バージョンに更新したので、次のことを試しました。
THEANO_FLAGS='optimizer_excluding=conv_dnn, optimizer_excluding=conv_gemm'
_THEANO_FLAGS='...' python <myscript>.py
_をタイプしているcmdからdnnとgemmを直接除外します。残念ながら、それでも同じエラーが発生し、print(teano.config)
を呼び出したときに、「conv_dnn」および「conv_gemm」という用語が表示されません。
だからここに私の質問です:一体どうやってtheanoフラグを適切に設定できますか、どうすれば成功したかどうかを確認できますか?それでも問題が解決しない場合、どのBLASを構築しているかをどのように確認できますか?どちらを使用する必要がありますか。また、theanoの依存関係を変更するにはどうすればよいですか。
このパッケージ、依存関係、ビルドされたその他のファンシーなコンピューターサイエンス関連のものすべてについては、私はエキスパートではないと推測したかもしれませんが、私が見つけたドキュメントはまったく立証されていないので、皆さんに助けてもらえると本当にありがたいですでる!
ベスト
ジョナス
.theanorcファイルに1行追加する
optimizer = None
グローバル構成として。
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.dll、libgfortran-3.dll、libopenblas.dllおよびlibquadmath-0.dll。 を参照してくださいhttp://deeplearning.net/software/theano/library/config.html
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 など、たくさんのソースを見つけることができます。