嗯,在杭州待了半个月,想了想还是把一个月前的这篇从草稿堆里面恢复出来了。
被老板外派出去参与健培公司的合作项目,正常的话,大概今年8月就能在央视的节目上看到我们的工作啦 ^0^/
这篇日志里面记录的都是网上的开源资料,主要来源于 Kaggle。
参考资料:
嗯,在杭州待了半个月,想了想还是把一个月前的这篇从草稿堆里面恢复出来了。
被老板外派出去参与健培公司的合作项目,正常的话,大概今年8月就能在央视的节目上看到我们的工作啦 ^0^/
这篇日志里面记录的都是网上的开源资料,主要来源于 Kaggle。
参考资料:
Node.js 现在已经发展成一个很强大的框架了,像 Hexo 这样的博客系统、Visual Studio Code 这样的文本编辑器、甚至Steam客户端(?)等等都是用这个写的。还有一堆,哪哪都是 Node。
很早就想学一下这玩意,结果各种事情一直拖着。
考完试终于有时间可以瞎折腾了。
记一下学 Node 的时候遇到的一些坑点。
话说最近很长一段时间都是在看别人的代码和改别人的代码比较多,自己从头开始写东西好像已经是很久前才有过的事情了。改 TensorFlow 的过程中也学到不少东西,准备平时想到啥了就随便写着玩。
内存池简单地讲就是我自己首先用 malloc
向系统申请一大块内存,然后接下来再用到内存的时候手动从这大块内存中划,不用了还回去。这个之后申请、释放内存都是手动实现的,自己写个内存池的 malloc
和 free
来完成就好了。
具体用内存池的好处,网上好多人都有说,其实一般情况下自己手写的东西都还是比不上人家造好的轮子的,但在某些特殊的应用场景下手写会有很多好处。例如 Nginx 就有个自己的内存池,用来应对频繁的小块内存申请等等。
我之前遇到的场景主要是 RDMA 在发送数据前需要往 IB 卡上绑定内存,这个过程相当耗时,所以有个想法是开头申请一大块内存出来,之后收发数据时用的 buffer 都从内存池里面划,就能省去很多的时间了。
半路上车,Deep Learning 这块还在断断续续地慢慢学,但是由于现在测 TensorFlow 性能的需要,所以来学一下 AlexNet(额,听说 CNN 的计算量不少)。
AlexNet 是 2012 年 ImageNet 竞赛冠军获得者 Alex Krizhevsky 设计的,所以叫这个名字,这个也一直是入门 CNN 的经典模型。
Talk is cheap, show me the code.
开始接触深度学习。
虽然 TensorFlow 是很早就开始折腾了,不过做的基本是研究它的底层实现方面的工作,真正上层应用方面的原理了解的很少。但是之后的工作需要用到这方面的知识了,因此学习一下。
看了不少教程,觉得最好的方法还是跟着个 C 的裸程序走一遍会印象深刻些~
读代码的时候遇到了一些新东西,以前从没见过的语句和使用方式,惊觉 C++ 标准都扩展到 C++17 了,然而我以前写 ACM 的时候甚至连 STL 都很少用。
后来倒是陆续用过 queue 和 bitset 这样的黑科技。
这里陆续补充一点新东西的学习记录吧。
SWIG is used with different types of target languages including common scripting languages such as Javascript, Perl, PHP, Python, Tcl and Ruby. The list of supported languages also includes non-scripting languages such as C#, Common Lisp (CLISP, Allegro CL, CFFI, UFFI), D, Go language, Java including Android, Lua, Modula-3, OCAML, Octave, Scilab and R.
上面那段是 SWIG 的官网介绍,简单地说,SWIG 是一个用于 C/C++ 和高层脚本语言交互的工具。脚本语言在 SWIG 的辅助下可以直接调 C/C++ 的程序。
简单试了一下 SWIG 在 Python 里面的用法,然后测试了一下 gdb 以及 VS 的远程调试(红红火火恍恍惚惚,其实想记录的重点是这个)。
把去年 7 月的那篇 TF 删掉了,重新开一篇。
前天晚上发生了一件巨坑爹的事情——具体的不再详细讲了,简单地说就是:
银泰人太多,只能把车停在了一条比较远的偏僻的小路上然后走过去。回来的时候放在车里的电脑丢了。
然后就呵呵呵呵呵呵了。