1.å¦ä½å¨Mac OSXä¸å®è£
xgboost
2.极简入门TensorFlow C++源码
å¦ä½å¨Mac OSXä¸å®è£ xgboost
1. Mac OSXç³»ç»ä¸è¬èªå¸¦pythonï¼æå¼ç»ç«¯è¾å ¥pythonå³å¯åpython代ç ï¼æ以pythonç¯å¢å·²ç»å ·å¤äºã
2.å®è£ Homebrew ,源码 类似äºubuntuä¸çapt-getåcentosä¸çyumï¼æ¯OSXéé¢çä¸ä¸ªé常æç¨è½¯ä»¶å®è£ å·¥å ·ã
/usr/bin/ruby -e "$ï¼curl -fsSL /Homebrew/install/master/installï¼"
ç´æ¥å°ä¸è¿°ä»£ç ç²è´´è³ç»ç«¯å³å¯å®è£ ãï¼å®è£ è¿ä¸ªè½¯ä»¶çç®çå¨äºæ´æ°gccçæ¬ï¼å 为å®æ¹ææ¡£ä¸è¯´åªæææ°çgccçæ¬æè½ä½¿xgboostæ¯æå¤çº¿ç¨ï¼
3.å®è£ ææ°çæ¬çgcc ï¼gcc-6ï¼
brew install gcc --without-multilib
è¿æ¥æ¯è¾èæ¶ï¼ç¨äºå°è¿1å°æ¶ã
4.ä»gitä¸ä¸è½½æºç
cdè¿å ¥ä½ æ³è¦å®è£ çç®å½ï¼ç¶åè¾å ¥ä¸é¢ç代ç ãï¼ææ¯ç´æ¥å¨æå¼ç»ç«¯çç®å½ï¼
git clone --recursive /dmlc/xgboost
极简入门TensorFlow C++源码
前一段时间,我专注在框架开发上,源码并偶尔协助业务同学优化使用TensorFlow的源码代码。在观看dmlc/relay、源码nnvm的源码代码时,我发现了它们的源码庄家最全指标源码有趣之处。我也对TensorFlow的源码Graph IR、PaddlePaddle的源码Graph IR产生了兴趣,上周五在阅读代码时,源码无意间听到了一个数据竞赛群讨论框架的源码底层实现。几位算法大佬提到了看底层源码可能较为繁琐,源码因为这类代码通常相对容易理解。源码在与群内伙伴的源码交流后,我萌生了撰写一篇关于如何阅读TensorFlow或其他框架底层源码的源码文章。
选择合适版本的源码2020卡盟系统源码bazel,对于阅读TensorFlow源码至关重要。应使用版本为0..0的bazel来拉取TF2.0代码,因为太高的版本或太低的版本可能影响阅读体验。在安装了合适的bazel版本后,使用clion上的bazel插件进行导入,然后配置编译,导入项目,Linux源码和内核代码等待clion编译整个项目。完成编译后,就能愉快地阅读代码,甚至于protobuf生成的文件也能轻松跳转。
使用c++编译模型是TensorFlow的另一面。尝试使用c++编写模型代码,可以深入理解TensorFlow的java原生文件上传源码底层机制。主要函数包括CreateGraphDef、ConcurrentSteps、ConcurrentSessions等。通过这些函数,可以构建计算图,定义节点、常量变量、幸运五星源码操作符等。这为理解TensorFlow的逻辑提供了直观的视角。
深入分析代码后,可以了解到TensorFlow的GraphDef机制、Square类的实现、注册到特定op的过程、functor的使用以及最终的实现逻辑。这有助于理解TensorFlow的核心原理,并在阅读源码时进行更深入的思考。
除了阅读源码,还可以通过编写测试用例来增强理解。TensorFlow提供了丰富的测试用例,如在client_session_test.cc中运行测试程序,可以验证代码的正确性。这不仅有助于理解代码,还能提高对TensorFlow框架的掌握程度。
阅读源码只是理解TensorFlow原理的开始,深入行业论文和请教行业专家是进一步深入学习的关键。网络上关于机器学习系统的资料丰富多样,但缺少系统性的课程。希望官方能够分享更多框架的干货,并期待在学习过程中总结和分享更多资源。阅读源码虽然复杂,但其背后蕴含的原理和逻辑十分有趣。