MATLAB深度学習ツールMatConvNetインストール
3882 ワード
紹介する
MatConvNetは,コンピュータ視覚応用のための畳み込みニューラルネットワーク(CNN)を実現するMATLABツールボックスである.このツールボックスを使えばMATLABでGPUを使ってトレーニングが簡単にできます.
要求
十分な新しいMATLABバージョン(R 2015 b以降)、およびC++11をサポートするコンパイラ(Visual Studio 2015、GCC 4.8、Xcode 7.3.1以降).GPU計算では、少なくともCUDA 7.5およびCuDNN v 4(オプション)または更新バージョンが必要である.
今回は以下の実験環境で実装した.
環境:
MATLAB2018a Visual Studio 2015 matconvnet-1.0-beta25
インストール
1.ツールボックスのダウンロード
まずMatConvNetをダウンロードし、希望するフォルダに解凍します.このフォルダは
2.ライブラリのコンパイル
1)CPUバージョンコンパイル MATLABを開き、コマンドラインに を入力する
>>mex-setup C++MEXは、「Microsoft Visual C++2015」を使用してC++言語コンパイルを行うように構成されています.警告:MATLAB CとFortran APIが変更され、2^32-1以上の要素を含むMATLAB変数をサポートできます.新しいAPIを利用するには、コードを更新する必要があります.詳細については、次のWebサイトを参照してください.https://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html. MATLABを開き、 を入力します.
>>> vl_compilenn警告:CL.EXE not found in PATH.Trying to guess out of mex setup.>In vl_compilenn>check_clpath (line 650) In vl_compilenn(line 426)x 64用Microsoft(R)C/C++最適化コンパイラ19.00.23026版著作権所有(C)Microsoft Corporation.すべての権利を保持する.
使用法:cl[オプション...]ファイル名...[/linkリンクオプション...]Location of cl.exe(C:Program Files(x 86)Microsoft Visual Studio 14.0VC..VCbinamd 64)successfully added to your PATH.'Microsoft Visual C++2015'を使用してコンパイルします.MEXは正常に完了しました....いくつかの行の同じ内容…「Microsoft Visual C++2015(C)」を使用してコンパイルします.MEXは正常に完了しました.
このCPUバージョンのコンパイルが完了しましたので、MATLABコマンドラインに次のコマンドを入力してテストできます.
3)GPUバージョンコンパイルまずあなたのGPU演算能力は2.0以上で、それからCUDAバージョンは次の表 を満たす必要があります.
MATLAB
CUDA toolkit
R2017a
8.0
R2016b
7.5
R2016a
7.5
R2015b
7.0
どのバージョンCUDAを使うべきか分からない場合は、次のコマンドを入力して、誰かが教えてくれます.次に、唯一のCUDAのみであり、MATLABバージョンに一致すると、次のコマンド を直接実行します. CUDAがたくさんある場合は、次のコマンドで を選択できます.インストール完了
できれば成功する
3)cuDNN support
上は実はもうしばらく使えますが、ここではGPUがなくてインストールを続けることができません.
3.あなたのMATLABを開く
入力:
テストCPU:
テストGPU:
まとめ
インストールに失敗した場合は、公式サイトをご参照ください
更新(Ubuntuインストール)
本論文ではUbuntu環境でも設定しGPUを配置したが,Ubuntuを用いるとコンパイラは次のように変換する.
他の内容は大同小異で、私はここで奇妙な間違いを犯しましたError using mex
/usr/bin/ld: cannot find -ljpeg
collect2: error: ld returned 1 exit status
Error in vl_compilenn>mex_link (line 528)
mex(mopts{:}) ;
Error in vl_compilenn (line 479)
mex_link(opts, objs, mex_dir, flags.mexlink) ;
MatConvNetは,コンピュータ視覚応用のための畳み込みニューラルネットワーク(CNN)を実現するMATLABツールボックスである.このツールボックスを使えばMATLABでGPUを使ってトレーニングが簡単にできます.
要求
十分な新しいMATLABバージョン(R 2015 b以降)、およびC++11をサポートするコンパイラ(Visual Studio 2015、GCC 4.8、Xcode 7.3.1以降).GPU計算では、少なくともCUDA 7.5およびCuDNN v 4(オプション)または更新バージョンが必要である.
今回は以下の実験環境で実装した.
環境:
MATLAB2018a Visual Studio 2015 matconvnet-1.0-beta25
インストール
1.ツールボックスのダウンロード
まずMatConvNetをダウンロードし、希望するフォルダに解凍します.このフォルダは
と言います.2.ライブラリのコンパイル
1)CPUバージョンコンパイル
mex -setup
mex -setup C++
>>mex-setup C++MEXは、「Microsoft Visual C++2015」を使用してC++言語コンパイルを行うように構成されています.警告:MATLAB CとFortran APIが変更され、2^32-1以上の要素を含むMATLAB変数をサポートできます.新しいAPIを利用するには、コードを更新する必要があります.詳細については、次のWebサイトを参照してください.https://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
cd
を解凍したmatconvnetディレクトリ
に入力し、次の3行cd F:\hiudawn\matlab\matconvnet-1.0-beta25
addpath matlab
vl_compilenn
>>> vl_compilenn警告:CL.EXE not found in PATH.Trying to guess out of mex setup.>In vl_compilenn>check_clpath (line 650) In vl_compilenn(line 426)x 64用Microsoft(R)C/C++最適化コンパイラ19.00.23026版著作権所有(C)Microsoft Corporation.すべての権利を保持する.
使用法:cl[オプション...]ファイル名...[/linkリンクオプション...]Location of cl.exe(C:Program Files(x 86)Microsoft Visual Studio 14.0VC..VCbinamd 64)successfully added to your PATH.'Microsoft Visual C++2015'を使用してコンパイルします.MEXは正常に完了しました....いくつかの行の同じ内容…「Microsoft Visual C++2015(C)」を使用してコンパイルします.MEXは正常に完了しました.
このCPUバージョンのコンパイルが完了しましたので、MATLABコマンドラインに次のコマンドを入力してテストできます.
vl_testnn
3)GPUバージョンコンパイル
MATLAB
CUDA toolkit
R2017a
8.0
R2016b
7.5
R2016a
7.5
R2015b
7.0
どのバージョンCUDAを使うべきか分からない場合は、次のコマンドを入力して、誰かが教えてくれます.
gpuDevice
vl_compilenn('enableGpu', true)
vl_compilenn('enableGpu', true, 'cudaRoot', 'yourpath/NVIDIA/CUDA-n.0')
vl_testnn('gpu', true)
できれば成功する
3)cuDNN support
上は実はもうしばらく使えますが、ここではGPUがなくてインストールを続けることができません.
3.あなたのMATLABを開く
入力:
run <MatConvNet>/matlab/vl_setupnn
テストCPU:
vl_testnn
テストGPU:
vl_testnn('gpu', true)
まとめ
インストールに失敗した場合は、公式サイトをご参照ください
更新(Ubuntuインストール)
本論文ではUbuntu環境でも設定しGPUを配置したが,Ubuntuを用いるとコンパイラは次のように変換する.
mex -setup c
mex -setup c++
他の内容は大同小異で、私はここで奇妙な間違いを犯しましたError using mex
/usr/bin/ld: cannot find -ljpeg
collect2: error: ld returned 1 exit status
Error in vl_compilenn>mex_link (line 528)
mex(mopts{:}) ;
Error in vl_compilenn (line 479)
mex_link(opts, objs, mex_dir, flags.mexlink) ;