做计算机视觉方面的开发、研究,不同于其他领域,对机器硬件配置有较高的要求,最主要体现在必须配置GPU,否则寸步难行。 对于高校研究人员,不像科技公司专门设置了基础架构部统一运维整个公司的研发环境,需要自己运维机器,徒手搬机器、插电源、拉网线、装系统、配GPU…,这是基础琐碎但必须做好的工作,拥有一个简单易用的开发环境是无比幸福的事!
服务器端
Note: 配置好后,长期稳定的使用,避免作大变动(重装系统、重装基础软件),避免把时间花在环境配置上
- 装一个 Linux 类型的操作系统,Ubuntu 16.04/18.04 LTS,这两个版本是官方长期维护的稳定版,用户基数非常大,遇到问题基本能在Google找到答案;现在主流的视觉框架,都有对应Ubuntu平台的实现
- 多用户使用,管理好用户权限
- user一般只对自己所在 /home/user目录有读、写、执行权限——防止破坏整个系统配置
- 每个user设置自己的密码,需要 sudo 权限时,输入自己的密码
- 使用GPU,需要安装
- NVIDA驱动,就是GPU向操作系统提供的接口,操作系统操作硬件设备必备
- CUDA,is a parallel computing platform and programming model that makes using a GPU
- cuDNN,CUDA® Deep Neural Network library,(cuDNN) is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, normalization, and activation layers
- 现在的视觉项目,大都用python实现
- 每个用户都要安装自己的miniconda3/Anaconda3,然后针对每个项目,再创建对应的虚拟环境
e.g.:conda create –n efficientdet python=3.6.6
- 需要用到OpenCV时,首先考虑在虚拟环境安装 opencv-python,这样既简单又能满足需求;而不是下载OpenCV源码、手动编译、安装,费时费力常常报错
e.g.:conda install opencv-python==3.4.2.18 conda install tensorflow-gpu==1.12.1
- 不要使用系统自带的python(除非是系统的唯一用户),也不要在系统python环境里面安装软件包
- 每个用户都要安装自己的miniconda3/Anaconda3,然后针对每个项目,再创建对应的虚拟环境
- 避免安装最新版本的软件,比如Python3.9、TensorFlow2.2,因为最新版本的软件用户毕竟少,出了问题已知的参考答案较少,也可能是发布前未测出来的bug
- 跑C/C++程序,自带 C/C++ 编译和调试功能,现在主流的是 C++11、C++14,语言功能、易用性较好
- 推荐 tmux 软件,服务器程序跑着,不用担心和客户端断开
- 一个原则是要在当前用户下配置本用户特定项目的环境,不要变动系统及其他人的环境
客户端
Note: 就是自己的笔记本/台式机,发挥轻量便携的优势
- 一般不需要装开发环境,开发环境都放在服务器
- 为了整个项目开发环境统一,避免笔记本写的代码,放在服务器运行不了的情况
- 用其他的笔记本/台式机,也能连到服务器,不受限于当前的客户端
- 只需安装连接服务器的软件,推荐 Visual Studio Code、Pycharm,它们都有连接服务器的插件并很容易安装,实现在客户端编辑、在服务器端运行的功能。Visual Studio Code 的例子
- 如果想测试一些轻量级的代码、简单的程序,装个双系统/虚拟机/Vagrant
Warning: 有待补充ing …