
CNTKの使い方を勉強しているが、どうも上手く行かない。やはりユーザが少ないからか、きちんとフィードバックがかかっていない気がするな。
CNTK 2.0からはPythonインタフェースが利用できるようになった。Pythonインタフェースでは、TensorFlowと同様にネットワークを構築して学習を実行できる。
Getting started — Python API for CNTK 2.0 documentation
最初の方の数値演算の実行は良いのだが、fnetsを作成して学習を実行してみても、想定通りの答えが出てこない。
- First Basic Use
Getting started — Python API for CNTK 2.0 documentation
チュートリアルでは、最後に以下のように出力されるはずなのだが、
average since average since examples loss last metric last ------------------------------------------------------ 0.693 0.693 25 0.699 0.703 75 0.727 0.747 175 0.706 0.687 375 0.687 0.67 775 0.656 0.626 1575 0.59 0.525 3175 0.474 0.358 6375 0.359 0.245 12775 0.29 0.221 25575 error rate on an unseen minibatch: 0.0
どう考えても、1行しか出てこないよ?
-------------------------------------------------------------------
average since average since examples
loss last metric last
------------------------------------------------------
Learning rate per minibatch: 0.125
0.917 0.917 0.56 0.56 25
しかもAverage Lossめっちゃ高いし。。。この辺、きちんとドキュメントがそろってくれること期待。
2017/06/07 追記。githubにチュートリアルの全ソースコードがアップロードされている。とりあえず実行してみた。
cd ./CNTK/Tutorials/NumpyInterop
$ python ./FeedForwardNet.py
Selected CPU as the process wide default device.
-------------------------------------------------------------------
Build info:
Built time: May 31 2017 17:14:07
Last modified date: Thu May 18 15:42:56 2017
Build type: release
Build target: CPU-only
With 1bit-SGD: no
With ASGD: yes
Math lib: mkl
Build Branch: HEAD
Build SHA1: ade8bc05d30e61160da729aee078e22f8bd4fced
Built by Source/CNTK/buildinfo.h$$0 on a4dbcb4fb82a
Build Path: /home/philly/jenkins/workspace/CNTK-Build-Linux_2
MPI distribution: Open MPI
MPI version: 1.10.3
-------------------------------------------------------------------
Learning rate per minibatch: 0.5
Minibatch[ 1- 128]: loss = 0.582338 * 3200, metric = 28.19% * 3200;
Minibatch[ 129- 256]: loss = 0.312840 * 3200, metric = 12.34% * 3200;
Minibatch[ 257- 384]: loss = 0.291944 * 3200, metric = 11.28% * 3200;
Minibatch[ 385- 512]: loss = 0.266468 * 3200, metric = 10.28% * 3200;
Minibatch[ 513- 640]: loss = 0.249985 * 3200, metric = 8.91% * 3200;
Minibatch[ 641- 768]: loss = 0.232742 * 3200, metric = 8.94% * 3200;
Minibatch[ 769- 896]: loss = 0.230655 * 3200, metric = 8.59% * 3200;
Minibatch[ 897-1024]: loss = 0.215014 * 3200, metric = 8.25% * 3200;
Finished Epoch[1]: loss = 0.297748 * 25600, metric = 12.10% * 25600 0.647s (39567.2 samples/s);
error rate on an unseen minibatch 0.040000
うーん、それっぽい。