Author Archives: admin

伪·2018届校招面经

作为一个曾经的2018届硕士毕业生,为找工作忙活了大半年,最终收获了微软、百度、头条、Face++等十多个Offer。校招季对我来说,在9月份就差不多结束了。本来很早就酝酿了这篇博客,但是由于之后一系列事情,耽搁至今,趁着提交完年终技术报告,回家之前,把这段经历记录一下。 Continue reading

厦门之行

2017年12月7日~13日,打着参加“第三届全国质谱分析学术报告会”的旗号,实验室一行11人开启了为期一周的厦门之旅。有关学术交流的总结报告,已经在实验室内部分享了,这篇博客还是来聊聊吃喝玩乐的事吧:)

第一次乘坐飞机

本次出行分为飞机组和火车组,大部队说飞机不安全要坐火车,我因为想体验一下乘坐飞机的感受,于是选择了飞机组。第一次坐飞机,体验有三点:1)快。从北京到厦门,横跨整个中国,只花了3个小时,真的好快,除去吃午餐等时间,连一部电影都没看完!2)噪。起飞和降落的时候噪声特别大,平飞的时候噪声也不小,而且快要到目的地时,会有短暂的耳胀,孙老师说第一次坐飞机的人好像都会出现耳胀的情况。还有就是有时候飞机比较颠簸,放在桌子上的水都快晃出来了。3)美。我因为第一次坐飞机,特地选了一个靠窗的位置,想体验一把俯瞰神州大地的感觉。从窗户往下看时,地形地貌和谷歌卫星地图一摸一样,窗外的云就像一朵朵棉花糖,很漂亮,很像各种神话剧中的天庭。

飞机上不让开手机,这是在北京首都国际机场起飞前抓拍的照片,以后坐飞机记得带相机

Continue reading

逻辑回归之Python应用实例

上一篇博客主要介绍了逻辑回归的理论知识,这篇博客咱们用Python机器学习包sklearn中的LogisticRegression做一个分类的实例。

数据还是学生样本,只有两个特征,分别是两门课的分数score1和score2,类标号y表示这个学生是否能被录取。先上分类效果图:

Continue reading

初探逻辑回归

最近实验室在组织学习NG的机器学习视频,我也跟进了一下。讲到逻辑回归那一课,一直想不明白,逻辑回归到底是怎样分类的?逻辑回归的分类面在哪里?逻辑回归有像SVM的max margin那样清晰的推导过程吗?为什么需要Sigmoid函数?今天就让我们来一窥逻辑回归的始末。

假设有一堆学生样本,为了简单起见,只有两个特征,分别是两门课的分数score1和score2,类标号y表示这个学生是否能被录取。可视化如下图,黑点表示y=1即被录取,红点表示y=0即未被录取,可以看到黑点处在score1和score2都比较高的区域。我们的任务就是给定这些训练样本,需要确定一个分类面来划分这两类数据。

Continue reading

2017年国庆旅行——郑州、杭州

今年国庆假期连着中秋,加起来有8天时间,考虑到上半年忙着找工作,太累了,打算利用这个假期好好放松一下。

一、行程规划

9月份的某个周末,规划好行程,制定了人生第一份独自出游的计划。整个过程只花了一天的时间,包括景点规划、住宿、车票购买。其实9月初就在脑海中规划这个事情,当时想的还是2个人同行,但是中间遇到了一些事情,最终只能一个人出游。一个人的话,不用考虑太多,为了节省路上的时间,全程购买高铁票,唯独从杭州回北京的高铁票没有了,幸运的是利用分流抢票软件抢到了一张硬座。住宿方面,一个人住青旅是再好不过了,既便宜、又可以遇到有意思的驴友。国内正规青旅可以在YHAChina上预定,我就是在这个网站上预定了杭州荷方青年旅社。没有在YHA上注册的青旅,可以通过booking.com预定,booking的优势是预定不收费,入住当天前取消也不收费,很不错,我就是在这个网站上预定了郑州的畅旅太空舱宾馆,不过到店之后老板建议我取消网站上的预定,进行线下支付,可以便宜几块钱。。。

Continue reading

Gperftools性能分析工具使用教程

上一篇博客简单介绍了Linux平台下不同性能分析工具的特点,最后是Google出品的gperftools胜出。今天我们将举一个用gperftools对链接库进行性能分析的例子。

假设我们创建了一个TestGperftools项目,其中包括一个动态链接库模块complex和主程序main,build文件夹用于存放动态链接库和可执行程序,文件结构如下所示。

czl@ubuntu:~/czl/TestGperftools$ tree
.
├── build
├── complex
│   ├── complex.cpp
│   ├── complex.h
│   └── Makefile
├── main
│   ├── main.cpp
│   └── Makefile
└── Makefile

3 directories, 6 files

Continue reading

Linux性能分析工具简介

这半年一直在研究pLink 2的加速策略,了解了相关的性能分析工具,现记录如下。

对软件进行加速的技术路线一般为:首先对代码进行性能分析( performance analysis,也称为 profiling),然后针对性能瓶颈提出优化方案,最后在大数据集上评测加速效果。所以进行性能优化的前提就是准确地测量代码中各个模块的时间消耗。听起来很简单,不就是测量每行代码的运行时间吗,直接用time_t t=clock();不就好了,但是事情并没有那么简单。如果只进行粗粒度的性能分析,比如测量几个大的模块的运行时间,clock()还比较准确,但是如果测量的是运算量比较小的函数调用,而且有大量的小函数调用,clock()就不太准确了。

比如下面的一段代码,我最开始的性能分析方法是在fun1()~fun3()前后添加time_t t=clock(),然后作差求和的。但是3个fun()加起来的时间居然不等于整个while循环的时间,有将近50%的时间不翼而飞了!

while(true) {
	if(fun1()) {
		for(int i=0;i<k;++k) {
			if(flag1) {
				fun2();
			}
		}
	} else {
		fun3();
	}
}

一种可能是while循环以及内部的for循环本身占用了较多的时间,但是好像不太可能呀。还有一种可能是clock()测量有误,time_t只能精确到秒,clock_t只能精确到毫秒,如果一次fun*()的时间太短,导致一次测量几乎为0,那么多次的while和for循环调用累加的时间也几乎为0,导致实际测量到的fun*()时间远小于真实时间。所以自己用代码进行性能分析可能会有较大的误差,最好借助已有的性能分析工具。 Continue reading

2016年终总结

2017农历新年的钟声都已经敲响了,我这2016的年终总结才开始动笔。

2016年,经历了很多,也成长了很多,遇到了很多曾经以为只会出现在电视剧中的场景,令人开始怀疑这个世界。前几天在朋友圈看到一个同学发的状态,觉得很适合作为这篇年终总结的开端。(同学你要是觉得被侵权了,告诉我,我立马删掉:-))

每个家庭的故事都会是一部长篇史诗。曾经总以为很多情节只会出现在电视剧中,现实的生活很是平淡无味,没有任何波澜,偶尔甚至还会抱怨一下自己不是故事的女主角,其不知现实的生活相比于电视剧,往往是有过之而无不及。

今天哥哥来电话了,从“天津”,一个美丽的谎言,一直在继续,还会坚持很久...

奶奶很开心...

——by angel

Continue reading