Anaconda离线模式(仓库)搭建深度学习环境 cuda&驱动 pytorch pip

文章目录

    • 简介
    • anaconda安装
    • channel/仓库配置
    • CUDA&驱动
    • 虚拟环境
    • 安装/卸载软件相关
    • pytorch
    • tensorflow

简介

anaconda是一个python管理工具,可以安装和管理依赖包,自带很多基础科学计算常用包,其中conda工具可以用来创建多个虚拟的环境,在不同的环境可以安装不同的软件,比如使用不同版本的tensorflow/torch等。
外网环境可以配置国内的anaconda源,如清华镜像站的,运行以下命令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes
即可添加 Anaconda Python 免费仓库。 相见https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

如果在内网环境下部署环境,可以把安装包(.bz2文件)放到服务器(任意目录,一般都在anaconda/pkgs/下),然后conda install 路径/xx.bz2安装,但这样不会自带安装相关依赖,对于某些依赖较多的包不太方便。可以通过添加Anaconda的channel(file://或者再起个nginx转成http),即仓库,从其他已配置好环境(同平台如linux 64位)中把所有bz2安装包都放进去,再安装即可自带安装依赖,详见下文。

anaconda安装

根据需要从官网下载py2或py3版本的sh安装包,bash Anaconda-xx-.sh按照提示安装即可。

channel/仓库配置

  1. 安装conda-build
    conda list | grep cuda-build查看是否已安装。
    若未安装,查看anaconda2/pkgs中是否有cuda-build-xxx.bz2,如果没有可以从别的环境中拷过来 可以通过conda install 路径/cuda-build-xxx.bz2安装。
  2. 拷贝安装包
    将其他环境中anaconda/pkgs/下的bz2安装包,拷贝到内网服务器上,必须按照平台创建子目录,如常见的linux-64,其他平台的不需要可以不创建,目录样例:
`channel/   
    linux-64/   
      package-1.0-0.tar.bz2   
    linux-32/    
      package-1.0-0.tar.bz2  
    osx-64/  
      package-1.0-0.tar.bz2  
    win-64/  
      package-1.0-0.tar.bz2  
    win-32/  
      package-1.0-0.tar.bz2`      

[注意] 从同平台的anaconda从拷贝。
3. 为channel创建索引
conda index channel/linux-64
可能需要至少几分钟,每次有新的安装包进来都需要index一下。
4. 验证
如果安装包都放在了/opt/channel/linux-64/下,可以通过一下命令验证是否配置成功。
conda search -c file://opt/channel/ --override-channels tensorflow-gpu
详见: https://conda.io/docs/user-guide/tasks/create-custom-channels.html

  1. 添加channel并配置为默认
    conda config --add channels file://opt/channel/
    会将本地channel设为第一优先channel。 注意是linux-64的父目录channel/。
    并会添加到~/.condarc文件中,可以将该文件中其他的channel(如defaults)删掉,就会只在本地寻找。可能有其他方法,没有去找,直接简单粗暴地改文件了,,,,
    详见:https://conda.io/docs/user-guide/tasks/manage-channels.html

至此,本地仓库应该配置完成了,可以通过conda install 安装本地channel已有的包了,不需要加–offline或-c指定channel等参数了。

[可选]nginx等web服务器搭建http版。 用linux-64的父目录,如 http://10.x.x.x/chennel

CUDA&驱动

CUDA的run包中包括显卡驱动。建议在创建虚拟环境前先使用run文件安装一个cuda和驱动,其他方式遇到很多坑,如单独安装几十兆版本的显卡驱动18.04中一直装不上去,ubuntu apt源中的版本较低等等。
安装步骤:

  1. 确认显卡型号和操作系统支持cuda
    目前-201812, nvidia官网下载的地方,只有cuda10支持ubuntu18.04。由于外挂硬盘识别问题,系统组给装的18.04,,,
    lspci | grep -i nvidia 查看nvidia显卡型号
    uname -m && cat /etc/*release 查看系统平台和版本

  2. 确认gcc
    gcc --version查看gcc版本
    如果没有gcc,可以编译安装,或者使用ubuntu离线仓库apt安装。

  3. 安装headers
    ubuntu
    sudo apt-get install linux-headers-$(uname -r)

  4. 禁用 nouveau
    lsmod | grep nouveau 查看nouveau是否启用。如果有启用则需要禁用,操作如下:
    ubuntu下
    创建文件 /etc/modprobe.d/blacklist-nouveau.conf 并写入
    blacklist nouveau options nouveau modeset=0
    update:
    sudo update-initramfs -u
    重启
    lsmod | grep nouveau确认nouveau已禁用。

  5. 确认make
    有些发行版可能不带make 需要安装,如sudo apt install make

  6. 安装cuda
    sudo sh cuda__linux.run 按照向导操作即可。
    第一屏使用条款很长,可以按q跳过
    如果还没有装显卡驱动,记得选安装显卡驱动/Drivers。
    有默认选项建议直接回车选默认呢。
    安装出错会显示log文件位置,可以打开看开具体错误信息,比如缺少某组件需要安装等。

详见 https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#runfile

虚拟环境

conda create --offline -n 名称 python=2.7
创建虚拟环境的时候建议用–offline参数,使用anaconda自带的包创建新环境,在新环境里用离线仓库装软件会比较方便,因为依赖比较清晰。
conda activate 名称激活环境。
conda deactivate 退出环境。

安装/卸载软件相关

  1. 在有网的anaconda环境中conda install安装需要的包,再将anaconda2/pkgs/下新的bz2包拷到内网服务器配置的channel目录下,重新index(见上文3小节),再在内网服务器下安装。

  2. 有些conda包依赖很底层的包,尽管是同平台甚至同操作系统大版本也可能无法拿过来用,可以尝试去 https://pypi.org/ 上下载pip用的whl或tar.gz安装包,用pip安装(tar.gz文件也不需要解压)。

  3. 未配置本地channel时conda install和uninstall时都需要联网访问远程channel,可以添加–offline参数规避。如conda uninstall --offline opencv

pytorch

pytorch在conda镜像库中更新较慢,可以通过pypi中下载离线版,pip安装。

tensorflow

conda install安装tensorflow会将所有需要依赖都安装,包括cuda等等。可以选择在虚拟环境中装不同版本的cuda。
如:conda install tensorflow-gpu=1.3.0安装1.3.0的gpu版tensorflow。

你可能感兴趣的:(Tips)