[036] Microsoft CNTK Part 1
喔耶!又有大頭的 C++ 程式碼可供觀賞,這次來自微軟:
Microsoft is making the tools that its own researchers use to speed up advances in artificial intelligence available to a broader group of developers by releasing its Computational Network Toolkit on GitHub.
同領域的另一方有 Google TensorFlow,發佈時間較早,專案使用了 Python and C++。(不知道跟 Google 另一個專案 DeepMind 有無關連?)
依據微軟提供的數據,CNTK 似乎打趴 TensorFlow。
這領域我還沒深入研究,僅匆匆一瞥 CNTK 程式碼,發覺一有趣(但我不怎麼喜歡)的用法:將
#ifndef let
#define let const auto
#endif
// And used somewhere in same file.
vector<wstring> args(argv, argv + argc);
let exePath = ConsumeArg(args);
定義了 let
macro(很多程式語言有 let
關鍵字,但 C++ 沒有),而且是放在 .cpp 裡頭,其他的 .cpp 也有同樣的定義。
另外發現一些「小物」:
- Unit Test 用 [Boost.Test],End-to-End 測試用 Python 來驅動。
- 似乎用到了 NVIDIA CUDA,其中一個檔名為
BestGpu.cpp
,是在暗示什麼嗎? - Windows 相依的程式碼不多,應該是有考慮跨平台。
未完,希望還有續集...