人工智能学习从入门到放弃往往就是从配置环境开始,希望通过一篇文章让大家能轻松搭建人工智能开发环境。
我们从操作系统开始谈起
现在操作系统你可以选择Windows 10 / macOS / Linux , 我个人是强烈推荐 Linux的因为在开发或者稳定性乃至兼容性上都是最好, 有人会说在开发外,还有很多工作,还有娱乐,那是否Linux就不适合了,这里我提提我个人的经验, 对于Linux 都已经有很多软件支持,如WPS ,如百度云盘,如Google 输入法,还有 你可以基于Wine 去安装相关适配的软件,如Wechat/QQ 等,当然你一定要Office 365 之类,我建议你安装 VMWare Player 装一个虚拟机去虚拟一个WIndows 也是可以的。当然你不喜欢虚拟机,那你可以在 Windows 10上直接使用WSL 去完成。至于macOS 用户,在现阶段你就只能在自身平台,或者通过VM Fusion / Parralel Desktop 去虚拟一个Linux 去配置。
大家知道机器学习/深度学习开发,需要用到GPU ,上述方案是否都能用呢?macOS 就不用想了,因为直接就和老黄不沾边多年,现在只能等深度学习框架去支持MLCompute 。而Windows / Linux 都是支持GPU的,那如果是WIndows 下的WSL 呢? 要等年底,你就可以直接在WSL通过原生或者容器方式去支持GPU算力了。
至于版本,我推荐使用Ubuntu 20.04.2 这是一个LTS 长期支持版本,在环境支持上也是很给力的. 下面是我的Linux 工作环境截图
接下来就是重点- 开发环境配置
0. Bash / Zsh
我喜欢用Zsh ,我喜欢他更多的定义,和编写规范,所以安装完Ubuntu/WSL 我会切换掉bash成zsh, 当然macOS 11 是自带了
sudo apt-get install zsh
whereis zsh
sudo usermod -s /usr/bin/zsh $(whoami)
sudo reboot
1. Python 的选择
现在很多人会说Python 环境多,究竟用哪个Python环境比较合适呢?当然你可以选择conda或者pyenv去配置多Python环境,但我个人喜好是pyenv ,当然conda也是可以的。至于Python 版本我喜欢用Python 3.8.x , 这个版本对比起3.6,3.7 更稳定,而且对深度学习框架支持比较完善。有人说系统自带可以吗?是可以,但是我觉得pyenv/conda 起到一个管理多Python作用,还是建议用。
pyenv的Ubuntu/WSL 使用方法
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc
exec $SHELL
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
exec $SHELL
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
CONFIGURE_OPTS=--enable-shared pyenv install 3.8.8
pyenv virtualenv 3.8.8 pydev
pyenv global pydev
macOS
brew install pyenv
2. CUDA 环境安装(如果你没有GPU直接去到4即可)
这里我选择使用CUDA 11.1 ,当然有很多人会选择10.2,但基于Ubuntu 20.04的环境,CUDA 11.1 是最好的,而且11.1 对于那些深度学习库都是完美支持,无论是TensorFlow / PyTorch , 还是国产的PaddlePaddle 都是兼容的。具体配置如下:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda-repo-ubuntu2004-11-1-local_11.1.0-455.23.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-1-local_11.1.0-455.23.05-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-1-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
3. CuDNN选择
我选择8.0.5 的版本,当然你可以选择更新,不过我在这个环境下稳定下来了,(下载地址 https://developer.nvidia.com/cudnn)
sudo cp cuda/include/cudnn.h /usr/lib/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/lib/cuda/lib64/
sudo chmod a+r /usr/lib/cuda/include/cudnn.h /usr/lib/cuda/lib64/libcudnn*
echo 'export LD_LIBRARY_PATH=/usr/lib/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.zshrc
echo 'export LD_LIBRARY_PATH=/usr/lib/cuda/include:$LD_LIBRARY_PATH' >> ~/.zshrc
注意:
2和3 完成后这里注意一点是我这里选择的nvidia driver是455 ,你可以通过Ubuntu 的Software Update 去查看是否选择的Driver正确,否则你必须确认是455。
还有有可能会遇到源的问题,你可以通过修正repository 来确认好相关的,操作如下:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get upgrade
4. 机器学习库安装
pip3 install numpy scipy scikit-learn matplotlib pandas pillow graphviz jupyter
5. 深度学习库安装
GPU 部分 , 现阶段我选用了TensorFlow 2.4.1 / PyTorch 1.8.1 / PaddlePaddle 2.0.2
pip3 install paddlepaddle-gpu==2.0.2.post110 -f https://paddlepaddle.org.cn/whl/stable.html
pip3 install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
pip3 install tensorflow-gpu==2.4.1
非GPU
pip3 install tensorflow-gpu==2.4.1
pip3 install torch==1.8.1
pip3 install paddlepaddle==2.0.2
你可以通过一些简单脚本去验证是否环境安装成功:
TensorFlow
PyTorch
那搭建就大功告成了,剩下就是学习时间。
6. 开发工具
Visual Studio Code 没有之一,只有唯一了,安装上,然后装一个Python 插件,一代神器。
学习机器学习/深度学习是动手的过程,环境安装就是第一关,也是非常关键的,第一步其实不难,难在有没有决心。希望有更多人进入该领域, Let's go