【草稿】实验室新手HandBook
PS:本文旨在给初入CV领域实验室的新手一个可供参考的学习列表,使得能够快速熟悉常用且必要的工具。😀
1. Linux基本命令行使用
2. 如何远程连接服务器
在OS X系统和Ubuntu系统中,只需在Terminal中输入:
ssh username@hostname -p port 如 ssh bert@example.com -p 6000
其中-p port(端口号)不是必需的
然后按照提示输入密码(密码一般不显示出来)即可连接到远程服务器,之后则像正常的Ubuntu系统一样使用。更多使用方法可参考:Linux 下 SSH 命令实例指南
在SHELL中只能发送命令给远程服务器,如果想要传输文件,则需要下载FileZilla
在Windows系统中,推荐下载Xftp+Xshell,也有师兄推荐mobaxterm
Xftp用于传输文件,Xshell用于发送指令,但是都是收费软件(不建议在实验室使用破解版等非官方软件,可能会造成服务器遭到攻击)
推荐使用mobaxterm,同时包含传输文件和发送指令的功能,而且是免费的!
3. 如何使用TMUX
当你远程连接上服务器后,如果运行了一个对深度网络的训练程序,这时每次的训练过程可能需要数个甚至数十个小时。在这个过程中,远程连接的程序可能会因为各种原因而和服务器断开,你正在执行的训练任务也会被迫中断。
如果能有一种工具,使得在服务器上运行一个类似于“虚拟机”那样的程序,你的深度网络的训练任务可以放在“虚拟机”中运行,每次当你想断开与服务器的远程连接时,并不会断开“虚拟机”中正在运行的程序;下一次连接上服务器后,只需进入“虚拟机”即可立刻回到之前的工作状态,仿佛并没有断开过连接。
这个优秀的工具便是TMUX
实验室的部分服务器已经安装过了TMUX,若要进行自定义修改:
vi ~/.tmux.config
这个文件保存了当前用户对TMUX的设置。具体含义及如何更改,见上面的第三个链接。
4. 如何使用GIT
Git是一个非常方便的版本控制系统(注意区分其与Github),可以保存你的代码的历史版本,可以方便的回退到历史版本,还可以随时同步代码到远程仓库中,方便共享和协作。
目前见到的非常非常清晰的一个Git教程(作者关于别的方面的教程貌似也很不错)
如果遇到了代码原本挺正常的,然后被自己改出了BUG,还忘了怎么改回去……那太难受了,快使用Git吧!ʕ •ᴥ•ʔ
5. Python快速上手教程
Python是目前极为常用的语言,这里有一个快速上手的教程(是CS231N的一部分),对新手较为友好
英文版:Python Numpy Tutorial (推荐);;;中文版
6. CS231n Convolutional Neural Networks for Visual Recognition
一个计算机视觉的经典课程,是一门由李飞飞执教的斯坦福大学公开课
可以让你快速了解什么是CNN(卷积神经网络)、计算机视觉的发展史、计算机视觉+深度学习的常用工具等等
课后作业建议好好写
相关资源:
课程主页:http://cs231n.stanford.edu/
教学安排及大纲:http://vision.stanford.edu/teaching/cs231n/syllabus.html (建议每次从这个页面开始进入学习)
中文资源:[斯坦福CS231n课程整理] Convolutional Neural Networks for Visual Recognition(附翻译,作业)
中文资源[Newest!]:
7. 如何远程使用主机
- TeamViewer: https://www.teamviewer.com/zhcn/download/windows/
- 全平台支持:Windows、MAC、iOS、Android、Linux
- 免费,可以在手机端控制电脑,非常方便
- 所有设备全部登陆自己的账号,即可自由连接
- VNC: 需要安装服务器端和客户端,支持更广,甚至包括树莓派(其实也是Linux内核)
- TeamViewer必须联网使用,局域网内不支持;VNC则局域网内也可以使用
- Microsoft Remote Desktop: 专门用于连接Windows电脑(需要有独立IP,不是十分推荐),同样有手机和MAC、Windows版本
8. 如何快速实现深度学习中自己对神经网络的想法
注意:高级API的速度没有原生的快,所以,仅推荐做初步学习使用,实际准备发表论文时,还是最好用原生API
Keras:基于Python的深度学习库
Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow、Theano以及CNTK后端。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras:
- 简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)
- 支持CNN和RNN,或二者的结合
- 无缝CPU和GPU切换
最近,Keras已经正式被TensorFlow官方接纳为正式的API,相信越来越多的人会去使用这个工具
- 中文文档链接(截至2018/03/13):https://keras-cn.readthedocs.io/en/latest/
- 英文文档链接:https://keras.io/
TFLearn: Deep learning library featuring a higher-level API for TensorFlow.
另一个推荐的高级API是TFlearn,也是我之前学习过的一个工具
其中Get Started一节,能够手把手的教会你如何训练一个简单的神经网络
目前只有英文版,链接:http://tflearn.org/
同样非常建议学习!
据说TF太慢了,师兄推荐PyTorch,可以参考:https://zhuanlan.zhihu.com/p/29024978