Thursday 8 September 2016

ubantu安装caffe

之前经历无数周折和电脑变砖之后终于装好cuda,现在开始安装caffe。这里,这里,这里都有教程。

先安装sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler,提示有unmet dependency,就把没有的装上就行。

然后sudo apt-get install --no-install-recommends libboost-all-dev,一开始显示有一堆问题,之后发现要sudo apt-get --purge remove libboost-all-dev libboost-dev libboost-doc,然后sudo apt-get install -f,sudo dpkg --configure -a, sudo apt-get clean,sudo apt-get install libboost1.54-dev。这时再sudo apt-get install --no-install-recommends libboost-all-dev就可以了。

接下来就是sudo apt-get install libatlas-base-dev和sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev,没遇到问题。

之后make all -j8.因为我用的旧版本的caffe,出现了no rule to make target之类的,跟gcc的limits.h有关。可能是cuda的路径不能用/usr/local/cuda-6.5? 不过在usr/local/里面cuda应该也是link到了cuda6.5。反正使用cpu only之后就可以了,不过make test又无法通过了,显示utls里面一个函数无法再opt/cuda/include中找到cuda_runtime.h。经过一系列debug,我先装了nvida current,然后cuda toolkit,最最关键的一步是make clean,之后就可以make all了,后来发现是从网上下载的caffe默认路径在opt里面,第一次安装没有成功,所以如果没有make clean就还会在opt里面安装。之后装caffe又出现过gcc没找到limits.h的情况,总之要多make clean几次再重装就OK了。

之后重装caffe的时候,又说找不到cuda,发现在config里面不能把cuda的路径设置成/usr,必须是/usr/local/cuda,不懂caffe里面说ubantu 14.04的cuda路径设置成/usr的用意何在。

装好之后想在matlab里面跑caffe,出现gcc 4.8.4 not supported的问题,根据这里,给gcc降级。

caffe如何使用可以参考这里。有一些code是在MATLAB里面跑的,往往自带caffe的folder,直接在里面安装caffe就好。我运行的时候遇到了crash,起因在caffe('forward',image)那里。这时需要在terminal里面看matlab给出的具体error是啥。

一个比较令我困惑的是nvidia driver,cuda和cuda toolkit之间的关系。





Sunday 4 September 2016

重装系统

我的笔记本是thinkpad t420,用了很久之后变得很慢,所以用oneKey+GHO重新装了win7系统。注意必须要用`GHO`文件而不是`ISO`文件,不然oneKey会报错。

> 无线网卡

重新装好系统后一开始无线网卡不亮。从[官网](http://think.lenovo.com.cn/support/driver/newdriversdownlist.aspx?yt=pt&categoryid=9779&CODEName=ThinkPad%20T420&SearchType=0&wherePage=2&osid=231)下载`ThinkPad 1x1 11b/g/n无线网卡驱动程序(Windows 7)`和`[完整版]Intel (11abgn, abg, bg)无线网卡驱动程序`,并且安装好以后就可以连接无线网了。

> 显卡

从官网下载英伟达的显卡驱动之后屏幕就能正常使用了。下载英特尔的显卡驱动提示电脑没有满足安装要求。

> 热键

下载热键驱动之后就可以用`Fn`快捷键。

> 字体

一开始无法显示某些简体中文。要在控制面板中把system locale变成中文,还要在personalize->window color中把所有的字体改为Microsoft YaHei。如果用搜狗拼音和chrome的话,也要在设置中更改字体。

如何分享音乐

在微信中分享手机里面录制的歌曲,比如自己唱的,可以把它上传到media.io/zh/然后转换成mp3格式。在自己的微信上打开转换好的音乐链接,发送给朋友就可以了。

Sunday 28 August 2016

研究生申请总结

我主要申请的cv方向的博士,这里记录下申请的一些经历。部分内容参考的别人的申请经验。

关于申请

套磁
不少申请的总结里面都提到了套磁的重要性,而且说这是有益无害的。我觉得套磁确实非常有帮助,第一能了解教授的科研背景,第二能锻炼书写邮件的能力。至于教授回不回复就不是那么重要了。不过很多情况下教授不回复估计可能还是我对提到的paper和topic理解不够深刻。

参考资料
申请研究生是一个漫长的过程。这个过程中,我参考了这本书,里面提到申请本质。PS或许很重要,但是更重要的是招生委员会第一眼就会看到的网申表格和CV,而PS就是这些内容的延续。尽量创造一个领域让自己成为第一,换句话说,就是展示自己的独特性。在对于这种独特性有需求的教授那里,你才能脱颖而出。这就涉及到了解自己,首先要了解自己的底线,而不是盲目的人云亦云。比如自己真的非藤校不上?即便如此,也是有自己的理由,而不是其他人都这么想所以我也这么想。了解自己底线并非降低自己,而是在此基础进步。
每个人都有自负的一面,也有自卑的一面。无论申请也好还是其他的事情,一个人要首先直面内心的自负和自卑。只有具备这种素质,才有了直面社会竞争的能力,而不是躲在象牙塔内只关心考试分数。总结来说,超越自我的实质就是怀疑,学习,然后自然而然的行动。

学校数量

Princeton review和一个CS PhD的申请指南中都提到,大概选择3所同一个水平的学校,2所你要高攀的学校,2所保底学校,总共7所。

加州系

我生在现代雾都,交换去了古代雾都,就连本科都难逃森林大火导致的雾霾之害,对理想天气的渴求非常迫切。去过加州的同学都提到那里舒适的天气,所以我也是花了很多时间研究加州系学校。


加州系学校名单University of California, Berkeley
University of California, Davis
University of California, Irvine
University of California, Los Angeles
University of California, Riverside
University of California, Santa Barbara
University of California, Santa Cruz
University of California, San Diego

UC Berkeley Computer Vision Group主要做deep learning,看起来非常高大上。 
UCD好像没有专门的CV实验室,而且只有Prof Yong Jae Lee在做CV和ML。
UC Irvine vision group需要通过School of Information and Computer Sciences申请。research topic比较广泛,从bio imaging到物体识别和运动识别都有。
Google UCSC的时候发现了一篇讲解申请经历的详细日志,介绍的都是各个学校CV方向,很有参考价值。还有这一篇,是个在caltech在做过毕设的申请经历。
UC Riverside的vision实验室在这里,不过好像很久没更新了。
UCSB的实验室是这个,研究集中在bio-inspired methods for computer vision。
UCSC的lab在这里,组里面中国学生不多。
UCSD是cognitive science的发源地,bio和neuro比较强。不过之前在这里的Prof Belongie去了Cornell。有两个CV实验室,SVCLComputer Vision Laboratory

说完加州,再看看其他学校。布朗大学的实验室做过很酷炫的project,比如3D绘图,不过组里面中国学生不多。这个网站上面有各个国家做vision的教授的总结。


Monday 22 August 2016

Summary of useful ROS/Linux commands

sudo chmod a+wrx /dev/ttyACM0

To enable access to a USB port on the NUC

rosrun rqt_reconfigure rqt_reconfigure

To configure cameras

roslaunch pointgrey_camera_driver stereo_camera.launch

To run the pointgrey camera drivier

ps aux | grep your_project_name
kill -9 your_project_index

To kill a rosnode when CTL+C does not work

grep -r "keywords"

search for keywords

rqt_bag

To see the imu values in rosbag

Tuesday 9 August 2016

Cannot add file in github

We need to be careful when using cloned repo, since git will ignore the folder that contains a .git. Therefore we have to remove the .git before we add all the files. Otherwise, git will say nothing to commit, work directory is clean.

To solve this, first delete the .git, then as discussed here, use git rm --cached path_to_submodule, then do the normal add and push. 

Thursday 4 August 2016

Git - changes not staged for commit

One problem I encounter is that "Changes not staged for commit" when using git. It turns out that I need to use git add --all :/ instead of git add .

This may be due to the fact that I have some modified and deleted files, and should use git add --all :/ to add all the changes recursively. I suspect the behavior of git add . has changed from the older version.