0

matlab には、線形サポート ベクター マシンを実装して機械学習を行うプログラムがあります。

ライブラリは、モデルを表すトレーニング フェーズ中に構造を出力します。この構造は、テスト段階で使用されます。

この構造をファイルに保存したいので、毎回トレーニング フェーズを実行する必要はありません。

psychtoolboxWriteStructsToText()を試しましReadStructsFromText()たが、構造体をメモリに読み込む際のバッファ オーバーフローが原因で失敗します。

出力された構造体は非常に大量のデータ (数十メガバイト) であるため、これが問題になる可能性があります。

構造:

    -Parameters: Parameters
    -nr_class: number of classes; = 2 for regression
    -nr_feature: number of features in training data (without including the bias term)
    -bias: If >= 0, we assume one additional feature is added to the end
        of each data instance.
    -Label: label of each class; empty for regression
    -w: a nr_w-by-n matrix for the weights, where n is nr_feature
        or nr_feature+1 depending on the existence of the bias term.
        nr_w is 1 if nr_class=2 and -s is not 4 (i.e., not
        multi-class svm by Crammer and Singer). It is
        nr_class otherwise.

編集:

このエラーを修正する方法を知っている人はいますか?

>> save('mode.txt','-struct','model');
>> model = load('mode.txt');
??? Error using ==> load
Number of columns on line 1 of ASCII file C:\Users\jason\Dropbox\Homework\cs280\FINAL PROJECTO\mode.txt
must be the same as previous lines.
4

1 に答える 1

2

最も簡単なのは、構造を .mat ファイルに保存することです。

outputStructure = yourTrainingFunction;

save('someFileName.mat','-struct','outputStructure');

そしてロードへ

outputStructure = load('someFileName.mat')

ファイルが非常に大きい場合は、Matlab の一般設定で適切な互換性を設定する必要があるかもしれないことに注意してください (私の記憶が正しければ、7.3 より前のバージョンの保存ファイルは 2GB を超えるファイルを処理できません)。

于 2012-12-05T02:41:46.263 に答える