2016/02/09

[ai]『深層学習』の8章に挫折してCNTKを試す (4)

PCが復旧したので、Simple2dサンプルを動かしてみた。

ログがだーっと出るので、ファイルに保存したい。
リダイレクトしようかと思ったが、標準出力か標準エラー出力かわからんし、混ぜた方が良いのか片方だけがよいのかわからん。

検索すると、stderrというオプションを付けると、そこに書込むらしい。

> cntk configFile=Config/Simple.config currentDirectory=Data stderr=.\log

こうすると、Dataフォルダの中に「log_Simple_Demo_Train_Simple_Demo_Test.log」というファイルができた。
logというフォルダまで作ってやったのに、Dataフォルダの直下にこのファイルができていたのだ。
currentDirectoryでデータフォルダの場所を指定してるけど、これはconfigファイルに書いているパスがそうなっているからだろうか。

細かいことだが、今のgithubに上がっている設定ファイルは、Simple.configではなくSimple.cntkになっている。
「CNTKBook-20160121.pdf」という説明っぽいファイルもconfigになっているので、注意しよう。
まあ、エラーが出るだけなんだけど。

 

ログの見方はよくわからんが、最初の半分くらいはSimple.configの中身を展開したもののようだ。
なんというか、コンパイル前のプリプロセスみたいな感じで、デフォルト値などが見えるようになったのかもしれない。
「>>>>>>>>>」がセクションの開始で、「<<<<<<<<<<」が終わりなのだろう。

  • RAW CONFIG (VARIABLES NOT RESOLVED
  • RAW CONFIG WITH ALL VARIABLES RESOLVED
  • PROCESSED CONFIG WITH ALL VARIABLES RESOLVED

ここまでが展開部分かな。
「SimpleNetworkBuilder Using CPU」などと出ているから、あれだけ苦労してインストールしたCUDAを使ってくれていないということか。
configファイルに「deviceId = -1」という行があり、コメントに「-1だとCPU」と書いてあるから、そうなのだろう。
”auto”とかにしておけば、勝手に使ってくれるのかもしれない。

ここから先は「Validating」のログがわーっと書いてあるのだが、さっぱりわからん。
一番最後に、結果らしきものがあるのだけど・・・これも見方がわからん。
「レコードが603見つかった」とあり、DataTest.txtも603行だから、これはそうなのだろう。

Minibatch[1-1]: Samples Seen = 603    EvalErrorPrediction: ErrorPrediction/Sample = 0.04145937    CrossEntropyWithSoftmax: CrossEntropyWithSoftmax/Sample = 0.096707169   

Final Results: Minibatch[1-1]: Samples Seen = 603    EvalErrorPrediction: ErrorPrediction/Sample = 0.04145937    CrossEntropyWithSoftmax: CrossEntropyWithSoftmax/Sample = 0.096707169    Perplexity = 1.1015378   

まだブログエディタが整ってなくて、こういうログが載せづらい。。。
Final Results、とわざわざ書いてあるから、下の方が最終結果なのだろう。
これが、0.99とかそういう値があったら「あ、99%は正解してるんだ」などと想像できるのだけど、0.04とか0.09、1.10とかになるとそういう意味じゃないんだろう、くらいはわかる。
あー、でも誤認識が9.6%とかだったら、まだわかるかも。

きっと、境界線付近の座標は正解率が悪くて、離れていくほど高くなっていくに違いない。
・・・とロジックで組んでるのだったら思うのだけど、どうなのかな?

https://github.com/Microsoft/CNTK/blob/master/Examples/Other/Simple2d/AdditionalFiles/SimpleDemoOutputReference.png

この画像が、たぶん結果をグラフにしたものなのだろうけど、色見本の見方がわからん。
+25~-30くらいだけど、単位がないとねぇ。

画像はさっきのPDFのFigure 1.2と同じもの。
「Trained output values over the region of interest for the first (of two) output neurons」
「ROIをトレーニングした出力値」というのはなんとなくわからんでもないが、「最初の2つのニューロンの出力」は何だろう?
”output neurons”は、出力ノードのことか?
文章の方に「optimized output (before sigmoid) of one of the two output nodes」とあるから、そういう気がする。

 

が、今日はもう寝よう。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。