« レーションを食ってみた。 | メイン | さぼりすぎwww »

シリアライズ-デシリアライズの実装

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

コメント

コメントしてください




保存しますか?