2

Octave (Windows プラットフォーム) で libsvm を使用したいと考えています。readme ファイルとインターネットの多数の投稿から十分に理解できれば、何かを作成またはコンパイルする必要はなく、mexw32 および mexw64 ファイルを Octave 作業ディレクトリにコピーするだけです。これを行っても何も起こらず、サンプル コードを実行したいときのエラーは以前と同じです。

error: `libsvmread' undefined near line 7 column 11

Octave コマンド プロンプトからも make を実行しようとしましたが、他のエラーが発生しました。

warning: unable to find mkoctfile in expected location: `c:\Program Files (x86)\
Octave-3.6.2\bin\mkoctfile-3.6.2'
warning: mkoctfile exited with failure status

しかし、指定されたディレクトリに mkoctfile-3.6.2.exe があります...

私もすでにファイルを編集しようとしましたoctaverc...しかし、それは役に立ちませんでした。

libsvm を正しくインストールする方法はありますか?

4

1 に答える 1

2

LIBSVM ディストリビューションのサブフォルダーにある README ファイルmatlab(私は 3.13 を見ました) によると、含まれているバイナリは、Windows 上の Matlab の 64 ビット バージョン専用です。これらのバイナリは、Windows 上の Octave の私のバージョンでは確実に動作しませんでした! LIBSVM を Octave で動作させるには、Octave 固有の .mex ファイルを作成し、Octave が見つけられる場所に配置する必要があります。

http://flyingpies.wordpress.com/2012/11/20/getting-libsvm-to-work-with-octave-on-windows/でプロセスのウォークスルーをまとめました。簡単に言えば、手順は次のとおりです。

  1. Visual Studio でビルドされた Windows バージョンの Octave があることを確認してください (つまり、cygwin や mingw ではありません)。これらの他のバージョンでも、試していないため、同等の手順を実行できると確信しています。

  2. Visual Studio 2010 または 2012 のコピーを入手してください。どちらでも問題なく動作しました。その大きなパッケージから、コマンド ライン C コンパイラとリンカだけが必要です。VSのExpress バージョンは Microsoft から無料で入手できますが、私は試していません。

  3. コマンド プロンプト ウィンドウで、vcvarsall.batVisual Studio の Visual C フォルダーからバッチ ファイルを実行して、コンパイル用の環境を準備します。

  4. Octave bin フォルダーをパス (C:\Program Files (x86)\Octave-3.6.2\bin私のマシン上) に追加します。これにより、発生した「mkoctfile が見つからない」問題が解決されます。

  5. Octave の math.h インクルード ファイルを編集して、Visual Studio の math.h の正しい場所を参照します。c:\Program Files (x86)\Octave-3.6.2\include\math.hの 74 行目をに変更する必要がありましc:/Program Files/Microsoft Visual Studio 10.0/VC/include/math.hc:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/include/math.h

  6. vcvarsall とパスを指定した同じコマンド プロンプト ウィンドウで、Octave を起動し、LIBSVM ディストリビューションの matlab サブフォルダーに移動して、make コマンドを実行します。これにより、そのフォルダー内の make.m ファイルが実行され、.mex ファイルがビルドされます。

  7. .mex ファイルを Octave が見つけられるフォルダーにコピーします。入れましたC:\Program Files (x86)\Octave-3.6.2\lib\octave\3.6.2\site\oct\i686-pc-mingw32

この時点で、Octave を起動すると、LIBSVM インターフェイス コマンドが使用できるようになります。たとえば、svmtrainコマンドを実行する必要があります。

于 2012-11-21T06:51:13.460 に答える