« レーションを食ってみた。 | メイン | さぼりすぎwww »
05/09/02(金)
シリアライズ-デシリアライズの実装
XMLシリアライズまわりの実装を完了。
- シリアライズプロセス NeuralNet.NeuralNetwork::SaveBrainStat
- NeuralNetworkInfo構造体に、自身が持つ情報を格納
- 自身のinputLayer,hiddenLayer,outputLayerに対しGetLayerInfo()を発行しNeuralNetworkLayerInfo構造体を取得
- 必要な情報がすべて格納されたNeuralNetworkInfo構造体を XMLSerializerを使ってシリアライズ、ストリーム出力
- デシリアライズプロセス NeuralNet.NeuralNetwork::CreateFromXML
- XMLファイル名を受け取る
- StreamReaderでファイルを開き、XMLSerializer::Deserialize()でデシリアライズする
- 失敗した場合はNull値を返し、通常のプロセスで作成して貰う
- デシリアライズされたNeuralNetworkInfo構造体をコンストラクタに渡してインスタンス化する
- 各層をインスタンス化
- 各層のニューロン数、接続関係を復元
- 各層に対してNeuralNetworkLayer.SetLayerInfo()を発行し接続重み等の情報を復元
とりあえず今のところはちゃんと動作している模様。
変な挙動があったとしても、XMLファイルは普通のテキストファイルなので
確認しやすい、というのがメリットか。
XMLSerializerに投げるだけで簡単にデータの退避ができるのは便利。
暗号化するにしても、StreamWriter/StreamReaderを継承して
暗号化を行う処理を追記すればいいだけ、だと思うし。
もっとも、卒研レベルなら全く必要のない作業ではあるが。
投稿者 Zawa : 2005年09月02日 10:00
トラックバック
このエントリーのトラックバックURL:
http://zawa.s18.xrea.com/x/mt-tb.cgi/37