从零快速构建完善的机器学习环境,采用docker镜像构建可重复快速使用的基础机器学习环境,方便快速复现机器学习领域各种比赛baseline或论文SOTA【详细解决方案】

目录

问题

解决思路

总结


问题

跑机器学习程序环境往往涉及到以下几个方面的问题:

  1. 硬件,intel x86,amd,arm等各种芯片
  2. 操作系统,windows,ubuntu,centos,mac等,考虑64位,32位等
  3. 显卡驱动,例如采用英伟达nvidia公司的GPU显卡,1070ti,1080ti等等显卡涉及到驱动,cuda,cudnn等的安装问题
  4. 开发语言:目前主流的机器学习实验开发语言是python,涉及到python版本管理问题,各种依赖包管理与隔离问题
  5. 主流机器学习框架,对前面 4个 问题的依赖不一样,例如tensorflow,pytorch,keras(tensorflow2.0已经直接包含了该库),nni等等,例如做得好pytoch给你列出了各个情况下的安装方法

,但是例如tensorflow并没有很好的告诉用户每个版本的tensorflow依赖哪个版本的os和cuda版本编译,导致很多时候用户安装环境都搞半天。

解决思路

针对以上问题:

  1. 我们一般采用intel x86的芯片。操作系统一般采用x86 64位的Linux操作系统,以前是ubuntu14.04现在ubuntu18.04 x64逐步开始流行起来,例如nvidia英伟达公司官方的docker镜像 “nvidia/cuda:10.0-base” 就默认是ubuntu18.04
  2. 大部分机器学习框架都已经支持在ubuntu18.04 linxu操作系统版本下的运行
  3. 宿主机器要装好驱动,例如宿主机为:安装一个最新版本的英伟达的显卡驱动“NVIDIA-Linux-x86_64-460.39.run”,具体各这驱动可以在英伟达官网上选择筛选,这里是1070ti显卡,linux生产稳定版本环境,“https://www.nvidia.cn/Download/index.aspx?lang=cn”其中选择:下载即可,对于国内网速慢原因我已经放了一份在百度云盘:“链接:https://pan.baidu.com/s/1b_FTjx4UsDhyWfNTfCjw3w 
    提取码:6666 ”,如果是windows环境安装最新的英伟达驱动即可,docker中采用镜像:“nvidia/cuda:10.0-base”,默认就把cuda10.0 cudnn装好了
  4. 在基于镜像“nvidia/cuda:10.0-base”的容器中安装 Miniconda3-py39_4.9.2-Linux-x86_64.sh 版本的miniconda,安装这个最新版本的好处在于可以用最小的安装空间得到基础的python各种版本和依赖库,例如:“conda create --name yolov5_py3.8 python=3.8”,安装好自动配置环境变量后,就可以打包成一个可复用的docker,这里有个笔者已经做好的docker:registry.cn-hangzhou.aliyuncs.com/allen135681/easyml:ubuntu18.04-nvidia_cuda10.0-base-Miniconda3-py39_4.9.2  执行下面命令就可以本地下载好该docker。windows 10下可以用wsl docker技术拉取该镜像。
    sudo docker pull registry.cn-hangzhou.aliyuncs.com/allen135681/easyml:ubuntu18.04-nvidia_cuda10.0-base-Miniconda3-py39_4.9.2

    以上docker主要有以下配置:

    docker pull名字:
    registry.cn-hangzhou.aliyuncs.com/allen135681/easyml:ubuntu18.04-nvidia_cuda10.0-base-Miniconda3-py39_4.9.2
    
    以上docker镜像基于英伟达官网的镜像nvidia/cuda 10.0-base eb416c0a142e 2 months ago 109MB 该基础镜像os是ubuntu18.04
    
    以下内容是添加的内容:
    
    1,添加apt 阿里云源: 
    #添加阿里源 
    deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse 
    deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse 
    deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse 
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse 
    deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse 
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse 
    deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse 
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse 
    deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse 
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
    
    2,apt update;apt install vim安装vim
    
    3,“/root/miniconda3/”目录下安装 Miniconda3-py39_4.9.2-Linux-x86_64.sh 自动配置环境变量,配置好后:conda 4.9.2 Python 3.9.1 pip 20.3.1
  5. 针对各种机器学习的库,可能都是在不同的操作系统版本,cuda版本,python版本下构建,必须要在这个版本上才能正常调用。所以需要模仿第4部分的思路构建多个类似的docker镜像文件。后续笔者会放出更多的针对各种机器学习库的docker镜像包。

总结

有了以上的镜像加持人人都可以成为合格的调包侠。快速复现baseline,SOTA等。

猜你喜欢

转载自blog.csdn.net/jrckkyy/article/details/114128602