4

Matlab 2007 で .mat ファイルに保存したニューラル ネットワークがあります。

を使用してファイルからニューラル ネットワークを読み込もうとしていますload filename.mat。これはバージョン R2007b および R2008 ではうまく機能しましたが、R2010b でロードしようとすると、次のメッセージが表示されます。

警告: クラスの loadobj メソッドの実行中にエラーが発生しました。MAT ファイルから読み込まれたオブジェクトは、loadobj メソッドが実行される前のオブジェクトのコピーでした。残りの変数も MAT ファイルから読み込まれました。
発生したエラー:
存在しないフィールド 'name' への参照

奇妙なことに、ニューラル ネットワークを保持する変数が存在するように見えますが、正しく機能していません。ニューラル ネットワークを使用する機能は、R2010 では機能しません。

誰かが同様の問題に遭遇しましたか? Matlab R2010 と互換性があるように、ニューラル ネットワークを保存するにはどうすればよいですか?
または、Matlab 2010 で適切にロードするにはどうすればよいですか?

4

2 に答える 2

4

はい、このMATLAB Centralの投稿によると、他の人がこの問題(MATLAB 2010にニューラルネットワークがロードされていない)に遭遇したようです。AndreasGoser(Mathworksのテクニカルサポートマネージャー)は次のように示唆しています。

今後この問題が発生する場合は、テクニカルサポートに連絡し、解決策1-EGNM3Sを参照してください。

どうやらあなたはテクニカルサポートが提供できる「固定net.mファイル」が必要です。私自身はその問題を抱えていないので、私はそれをテストしていません。

エラーメッセージを注意深く読むと、ロードされた変数には、.MATファイルに保存された「生の」オブジェクト(おそらく構造体)が含まれていると言えます。実行whos myvarnameして確認できます。この構造体をオブジェクトに「復活」させるにはloadobj、オブジェクトタイプのオーバーロードされた関数によって処理される必要があります。これは通常、MATLABのload関数によって自動的に呼び出されます。この場合、loadobjR2010のニューロンネットワークオブジェクトに付属しているものは、完全な下位互換性がないようです...

于 2011-09-21T11:17:53.217 に答える
1

ニューラル ネットの基本オブジェクトが 2007b 以降に変更され、R2010b の定義が MAT ファイルに保存されているデータと互換性がないのではないかと考えています。

ジョナスの答えに従うことをお勧めします。または、中間の MATLAB リリースでそれを読み込んで再保存するか、ニューラル ネット オブジェクトからデータを保存して R2010b で再構築してみてください。

于 2011-09-21T12:55:05.447 に答える