深度学习(Deep Learning)第一坑就是机器学习平台的选取和开发环境的安装,以下是重装两次系统后的安装经验。
机器学习平台选取
深度学习(Deep Learning)平台比较流行的是Tensorflow或者Pytorch,因为很多Paper的开源模型实现都是使用这两个平台实现的,选择这两个平台可以快速的复现已有的论文成果。由于实际业务需要,我选择是Tensorflow的平台。
Tensorflow的最大问题是Tensorflow 2.x与Tensorflow 1.x的兼容性问题。Tensorflow 2.0不兼容Tensorflow 1.x版本的很多API,而Github上、甚至Tensorflow官方的很多模型仍然是采用Tensorflow 1.x实现的。因此如果按照官方的默认指导页面安装了Tensorflow 2.x,就面临很多已有网络模型大量的编译错误需要修改。
因此安装Tensorflow时,尽量安装Tensorflow 1.x版本,而如果是新开发的网络模型,尽量选择Tensorflow 1.13、Tensorflow 1.14版本,因为它们与Tensorflow 2.0版本更接近,以后的迁移成本更低。
同时开发新项目时,尽量使用动态图 tf.keras接口进行。这样,在以后的移植过程中,可以减少很多不兼容的问题。
环境安装
机器学习开发环境的安装也是一个痛苦的过程,初入门者往往需要会把系统折腾挂掉很多次才能找到一个合适的GPU Driver、CUDA、cudnn、Tensorflow版本组合。
Tensorflow官方给出了经过测试的配置(https://tensorflow.google.cn/install/source#linux),如下图:
用户可以按照这些配置逐一安装,这里介绍下我在Ubuntu 18.04系统上安装Tensorflow的过程。Ubuntu 18.04是一个比较推荐的系统,在这个系统上安装开发环境都比较便捷。
1、安装GPU驱动
步骤一: 清理系统中其它的Nvidia驱动;
代码语言:javascript复制sudo apt-get purge nvidia*
步骤二: 向系统添加显卡驱动PPA;
从https://www.nvidia.com/en-us/drivers/unix/查看系统支持的GPU驱动版本;从https://launchpad.net/~graphics-drivers/ archive/ubuntu/ppa检查该Repo是否你的机器显卡。
代码语言:javascript复制sudo add-apt-repository ppa:graphics-drivers
sudo apt-get update
步骤三: 安装Nvidia GPU驱动;
Nvidia GPU驱动的版本根据实际的显卡类型选择。
代码语言:javascript复制sudo apt-get install nvidia-XYXYX
安装完成之后,重启系统。
代码语言:javascript复制sudo reboot
步骤四:验证Nvidia GPU驱动安装;
代码语言:javascript复制lsmod | grep nvidia
或者:
代码语言:javascript复制nvidia-smi
2、使用Anaconda安装Tensorflow
Google推荐的安装过程如下:https://tensorflow.google.cn/install/pip,不过我更推荐使用Anaconda的方式安装Tensorflow,它支持一个主机上同时安装不同版本的Tensorflow。
2.1 Anaconda安装
Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。
国内的同学尽量从清华的网站(https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/)下载,速度比较快。国外网站的访问速度极不稳定。
Anaconda安装完成后,设置Anaconda的软件源为清华的源。详细的说明见: https://mirror.tuna.tsinghua.edu.cn/help/anaconda/
Ubuntu 18.04系统上设置软件源的步骤为:
步骤一: 在用户的Home目录下新建.condarc文件,写入以下内容:
代码语言:javascript复制channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
即可添加Anaconda免费仓库。
步骤二:软件源生效
运行conda clean -i 清除索引缓存,保证用的是镜像站提供的索引。
2.2 Anaconda安装Tensorflow
在装完Anaconda软件之后,默认会创建一个虚环境,该虚拟环境的名字是“base”,也是当前系统的运行主环境。
我们一般会为每个Tensorflow版本创建一个独立的虚拟环境,它们之间相互隔离,创建的流程如下:
步骤一:创建Python虚拟环境;
代码语言:javascript复制conda create -n tf_114 python=3.6
或者本地Clone已有环境;
代码语言:javascript复制conda create -n tf_114 --clone ft_xxxx --offline
步骤二: 激活虚拟环境;
代码语言:javascript复制source activate tf_114
步骤三:安装Tensorflow;
Anaconda安装的好处是,它可以自动帮我们配置好对应的CUDA、Cudnn等环境。
代码语言:javascript复制#GPU版本的TensorFlow安装
conda install tensorflow-gpu==1.14
步骤四 退出当前Conda虚拟环境或者删除Conda虚拟环境
代码语言:javascript复制# 退出当前虚拟环境
conda deactivate
#删除指定的虚拟环境
conda remove -n yourVirtualEnvName --all
验证安装效果:
代码语言:javascript复制python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"