Deep Learningのライブラリといえば、TensorFlowやChainer、Caffeなどが定番とされ、使用する言語はPython!
な訳ですが、私がやりたいのは、工業用のカメラを使って、画像を撮影し、メモリに格納された画像データ(画像ファイルには保存しないで)を用いて、画像の判定を行いたい。
工業用のカメラを制御するSDKはほとんどの場合、C++かC#なので、私がメインで使っている言語のC#でDeep Learningを動かしたい。
【希望の動作環境条件】
・Windows7/10 64bit
・Visual Studio 2015 C#
・スタンドアロンPCで動作する(動作環境構築にネット接続を必要としない)
という事でC#から使えるDeep Learningライブラリを探していたのですが、Microsoftの
Cognitive Toolkitなるものがこれに該当しそう。
ということで、Microsoft Cognitive Toolkitを動かしてみました。
ライブラリ、サンプルの入手先はこちら↓のCNTK for Windows v.2.5.1 GPUをクリック
https://github.com/Microsoft/CNTK/releases
ファイル名はGPUになっていますが、CPUでも動くサンプルが同梱されています。
上記リンク先よりファイル(CNTK-2-5-1-Windows-64bit-GPU)をダウンロードし、ファイルを解凍すると、フォルダは以下のような構成になっています。
このうち、C#のサンプルが格納されているのは下図の赤く囲った部分。
試しにTrainingCSharp内のCSTrainingCPUOnlyExamplesのサンプルを動かしてみると、途中まで動作します
が、このようなエラー↓が表示されます。
これはおそらくPythonのサンプルプログラムを動作させて作成したファイルが足りないと言われているっぽい。。
途中まででも、C#でDeep Learningが動いてくれた事が無かったので、ちょっと嬉しい!!
ですが、サンプルプログラムをよく見ていくと、
・コードの書き方に一貫性が無い(少なくとも二人以上で作っている)
・C++の定義をラップしただけ?みたいな書き方になっている。(C#っぽくない)
他にも
・ドキュメントがやる気ない
https://docs.microsoft.com/en-us/cognitive-toolkit/cntk-library-managed-api
など、情報少ないし、なかなか大変なのですが、何となく可能性も感じるこのCognitive Toolkit
もう少し触ってみようと思います。