【草稿】实验室新手HandBook

PS:本文旨在给初入CV领域实验室的新手一个可供参考的学习列表,使得能够快速熟悉常用且必要的工具。😀

1. Linux基本命令行使用

参考1:初窥Linux 之 我最常用的20条命令

参考2:数据科学家必备!12个基本命令行工具帮你摆脱鼠标

 

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

  1. TMUX官网
  2. 对TMUX的介绍、安装及使用方法(快捷键版本)
  3. TMUX使用方法(手动输入命令版本)+用户自定义设置方法

实验室的部分服务器已经安装过了TMUX,若要进行自定义修改:

vi ~/.tmux.config

这个文件保存了当前用户对TMUX的设置。具体含义及如何更改,见上面的第三个链接。

 

4. 如何使用GIT

Git是一个非常方便的版本控制系统(注意区分其与Github),可以保存你的代码的历史版本,可以方便的回退到历史版本,还可以随时同步代码到远程仓库中,方便共享和协作。

目前见到的非常非常清晰的一个Git教程(作者关于别的方面的教程貌似也很不错)

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. 如何远程使用主机

如果在家想连接实验室使用的台式主机,应该使用什么远程工具呢?
主要工具有三种:
  1. TeamViewer: https://www.teamviewer.com/zhcn/download/windows/
    • 全平台支持:Windows、MAC、iOS、Android、Linux
    • 免费,可以在手机端控制电脑,非常方便
    • 所有设备全部登陆自己的账号,即可自由连接
  2. VNC: 需要安装服务器端客户端,支持更广,甚至包括树莓派(其实也是Linux内核)
    • TeamViewer必须联网使用,局域网内不支持;VNC则局域网内也可以使用
  3. Microsoft Remote Desktop: 专门用于连接Windows电脑(需要有独立IP,不是十分推荐),同样有手机和MAC、Windows版本

 8. 如何快速实现深度学习中自己对神经网络的想法

目前TensorFlow是深度学习领域的一个常用框架,但是这个框架的许多代码过于偏底层——实现一个很小的功能也需要很多行代码才能实现
而有很多高级API将TensorFlow的特性进行了封装,可以通过简单的几行命令就能实现以往上百行的功能,这里推荐两款高级API

注意:高级API的速度没有原生的快,所以,仅推荐做初步学习使用,实际准备发表论文时,还是最好用原生API

Keras:基于Python的深度学习库

Keras是一个高层神经网络API,Keras由纯Python编写而成并基TensorflowTheano以及CNTK后端。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras:

  • 简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)
  • 支持CNN和RNN,或二者的结合
  • 无缝CPU和GPU切换

最近,Keras已经正式被TensorFlow官方接纳为正式的API,相信越来越多的人会去使用这个工具

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

 

posted on 2018-01-30 10:48  Oliver-cs  阅读(683)  评论(0编辑  收藏  举报

导航