工作环境

系统:Ubuntu  LTS
显卡:GPU
NVIDIA驱动:410.93
CUDA:10.0
Python:.x

CUDA以及NVIDIA驱动安装,详见https://www.cnblogs.com/orzs/p/10951473.html

需要部署的软件

conda环境
nccl2环境
openmpi环境
horovod环境

1. 创建conda环境

官网下载地址:https://www.anaconda.com/distribution/#download-section

下载合适的安装文件,然后运行。

 cd init
 sudo wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh
 bash Anaconda3-2019.03-Linux-x86_64.sh

根据提示操作,并选择安装目录,默认安装在~/anaconda3/ 目录下。

注:初始化操作

1、如果默认不初始化,则安装之后,没有conda命令,需要手动初始化

注:为避免用户名泄露,此处的用户名均已$USER替代

installation finished.
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
[no] >>>


You have chosen to not have conda modify your shell scripts at all.
To activate conda's base environment in your current shell session:


eval "$(/home/$USER/anaconda3/bin/conda shell.YOUR_SHELL_NAME hook)"


To install conda's shell functions for easier access, first activate, then:


conda init


If you'd prefer that conda's base environment not be activated on startup,
set the auto_activate_base parameter to false:


conda config --set auto_activate_base false


Thank you for installing Anaconda3!


===========================================================================


Anaconda and JetBrains are working together to bring you Anaconda-powered
environments tightly integrated in the PyCharm IDE.


PyCharm for Anaconda is available at:
https://www.anaconda.com/pycharm


2、如果选择初始化,则会修改~/.bashrc文件,并创建conda命令

installation finished.
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
"deeplearning" 105L, 3558C written

installation finished.
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
[no] >>> yes
WARNING: The conda.compat module is deprecated and will be removed in a future release.
no change /home/$USER/anaconda3/condabin/conda
no change /home/$USER/anaconda3/bin/conda
no change /home/$USER/anaconda3/bin/conda-env
no change /home/$USER/anaconda3/bin/activate
no change /home/$USER/anaconda3/bin/deactivate
no change /home/$USER/anaconda3/etc/profile.d/conda.sh
no change /home/$USER/anaconda3/etc/fish/conf.d/conda.fish
no change /home/$USER/anaconda3/shell/condabin/Conda.psm1
no change /home/$USER/anaconda3/shell/condabin/conda-hook.ps1
no change /home/$USER/anaconda3/lib/python3./site-packages/xonsh/conda.xsh
no change /home/$USER/anaconda3/etc/profile.d/conda.csh
modified /home/$USER/.bashrc

==> For changes to take effect, close and re-open your current shell. <==

If you'd prefer that conda's base environment not be activated on startup,
set the auto_activate_base parameter to false:

conda config --set auto_activate_base false

Thank you for installing Anaconda3!

===========================================================================

Anaconda and JetBrains are working together to bring you Anaconda-powered
environments tightly integrated in the PyCharm IDE.

PyCharm for Anaconda is available at:
https://www.anaconda.com/pycharm

执行以下命令,使conda环境生效

 source ~/.bashrc

2. 进入conda py3.6

 conda create -n py36 python=3.6
 conda activate py36

3. 安装必要包

#修改清华的pip源

 mkdir ~/.pip
 touch ~/.pip/pip.conf

#pip.conf中写入以下内容

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

安装包

 pip
 pip install opencv-python==4.1.0.25
 pip
 pip 

4. 安装nccl2

下载地址:https://docs.nvidia.com/deeplearning/sdk/nccl-install-guide/index.html

根据系统和cuda版本下载对应的nccl2

 -ga-cuda10.0_1-1_amd64.deb
 -ga-cuda10./7fa2af80.pub(根据提示执行)
 sudo apt update
 -+cuda10. libnccl-dev=-+cuda10.

5、安装libcudnn

根据版本,下载对应的文件:https://developer.nvidia.com/rdp/cudnn-download

 -+cuda10.0_amd64.deb
 -+cuda10.0_amd64.deb

6. 安装openmpi

下载地址:https://www.open-mpi.org/faq/?category=building#easy-build

 sudo wget https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.1.tar.gz
 .tar.gz | tar xf -
 cd openmpi-/
 sudo ./configure --prefix=/usr/local
 sudo make all install

7. 安装horovod

文档说明:https://github.com/horovod/horovod/blob/master/docs/gpus.rst

 HOROVOD_GPU_ALLREDUCE=NCCL pip install --no-cache-dir horovod

注:HOROVOD_WITH_TENSORFLOW=1  可开启debug模式。

至此,深度学习环境安装完成,接下来即可做深度训练。

conda环境常用命令

如何默认不使用conda环境
 conda config --set auto_activate_base false
退出conda环境
 conda deactivate
进入conda环境
 conda activate

安装过程中可能出现的问题:

1、

ImportError: libcudnn.so.: cannot open shared object file: No such file or directory

原因:cudann未安装或者版本错误

解决:根据版本,下载对应的文件:https://developer.nvidia.com/rdp/cudnn-download

 -+cuda10.0_amd64.deb
 -+cuda10.0_amd64.deb

2、

ImportError: libcuda.so.: cannot open shared object file: No such file or directory

原因:一般是cuda版本不对导致

解决:安装对应的cuda版本即可

3、

ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory

原因:一般情况是cuda链接库的问题

解决:执行以下命令即可

 sudo ldconfig /usr/local/cuda/lib64

4、奇葩问题:

ModuleNotFoundError: No module named 'cv2'

如果未安装opencv-python,直接执行以下命令安装即可

 pip install opencv-python==4.1.0.25

如果已经安装,依然错误提示,我遇到的情况是,Python被劫持

执行命令

 which python

回显提示

~/anaconda3/envs/py36/bin/python

执行

 ~/anaconda3/envs/py36/bin/python

看到的版本是3.6.8

但是直接python看到是3.6.6

原因:python被劫持

解决:将~/.bashrc里的python环境变量清除即可

# alias python=/usr/bin/python3.

5、执行以下命令报错

 conda create -n py36 python=3.6
WARNING: The conda.compat module is deprecated and will be removed in a future release.
Collecting package metadata: failed

UnavailableInvalidChannel: The channel is not accessible or is invalid.
  channel name: anaconda/pkgs/free
  channel url: https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  error code: 

You will need to adjust your conda configuration to proceed.
Use `conda config --show channels` to view your configuration's current state,
and use `conda config --show-sources` to view config file locations.

检查conda配置(以前曾经安装过conda)

 conda config --show-sources
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - defaults
show_channel_urls: True

原因:conda已经不支持外部源

解决:删除清华的源即可

 conda config --remove channels 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/'
 conda config --remove channels 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/'

6、

[$USER-nmg-:] mca_base_component_repository_open: unable to open mca_oob_ud: libibverbs.so.: cannot open shared object file: No such file or directory (ignored)
[$USER-nmg-:] mca_base_component_repository_open: unable to open mca_oob_ud: libibverbs.so.: cannot open shared object file: No such file or directory (ignored)
[$USER-nmg-:] mca_base_component_repository_open: unable to open mca_btl_openib: libibverbs.so.: cannot open shared object file: No such file or directory (ignored)

原因:缺少libibverbs.so.1导致

解决:安装libibverbs1即可

 apt-cache search libibverbs
 sudo apt-get install libibverbs1

7、

python: symbol lookup error: /usr/local/lib/openmpi/mca_coll_cuda.so: undefined symbol: opal_cuda_check_bufs

原因:openmpi安装有问题或者版本冲突导致

解决:卸载并重新安装openmpi即可。

 cd /where/your/old_mpi/sources/are   //进入其他版本的安装目录
 sudo make uninstall
 sudo rm -rf /usr/local/lib/openmpi /usr/local/lib/libmca* /usr/local/lib/libmpi* /usr/local/lib/libompitrace* /usr/local/lib/libopen* /usr/local/lib/liboshmem* /usr/local/lib/mpi_*
 cd /where/your/mpi/sources/are   //进入需要安装的版本的目录
 sudo ./configure --prefix=/usr/local
 sudo make all install

8、

tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.

我遇到的情况是,已经安装了对应的版本(cuda10.0、libcudnn7-dev_7.6.0.64、tensorflow-gpu-1.13.1),但是被/usr/local/cuda-9.0/空目录影响到了,删除此目录即可。

 sudo rm -rf /usr/local/cuda-9.0/

深度学习环境搭建部署(DeepLearning 神经网络)的更多相关文章

  1. 深度学习环境搭建:Tensorflow1.4.0+Ubuntu16.04+Python3.5+Cuda8.0+Cudnn6.0

    目录 深度学习环境搭建:Tensorflow1.4.0+Ubuntu16.04+Python3.5+Cuda8.0+Cudnn6.0 Reference 硬件说明: 软件准备: 1. 安装Ubuntu ...

  2. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  3. [AI开发]centOS7.5上基于keras/tensorflow深度学习环境搭建

    这篇文章详细介绍在centOS7.5上搭建基于keras/tensorflow的深度学习环境,该环境可用于实际生产.本人现在非常熟练linux(Ubuntu/centOS/openSUSE).wind ...

  4. linux系统下深度学习环境搭建和使用

    作为一个AI工程师,对Linux的一些技能的掌握也能从一定层面反应工程师的资深水平. 要求1:基于SSH的远程访问(本篇文章) 能用一台笔记本电脑,远程登陆一台linux服务器 能随时使用笔记本电脑启 ...

  5. Win10+RTX2080深度学习环境搭建:tensorflow、mxnet、pytorch、caffe

    目录 准备工作 设置conda国内镜像源 conda 深度学习环境 tensorflow.mxnet.pytorch安装 tensorflow mxnet pytorch Caffe安装 配置文件修改 ...

  6. Ubuntu深度学习环境搭建 tensorflow+pytorch

    目前电脑配置:Ubuntu 16.04 + GTX1080显卡 配置深度学习环境,利用清华源安装一个miniconda环境是非常好的选择.尤其是今天发现conda install -c menpo o ...

  7. 深度学习环境搭建(CUDA9.0 + cudnn-9.0-linux-x64-v7 + tensorflow_gpu-1.8.0 + keras)

    关于计算机的硬件配置说明 推荐配置 如果您是高校学生或者高级研究人员,并且实验室或者个人资金充沛,建议您采用如下配置: 主板:X299型号或Z270型号 CPU: i7-6950X或i7-7700K ...

  8. 深度学习环境搭建常用网址、conda/pip命令行整理(pytorch、paddlepaddle等环境搭建)

    前言:最近研究深度学习,安装了好多环境,记录一下,方便后续查阅. 1. Anaconda软件安装 1.1 Anaconda Anaconda是一个用于科学计算的Python发行版,支持Linux.Ma ...

  9. (通用)深度学习环境搭建:tensorflow安装教程及常见错误解决

    区别于其他入门教程的"手把手式",本文更强调"因"而非"果".我之所以加上"通用"字样,是因为在你了解了这个开发环境之后 ...

随机推荐

  1. C语言入门4-运算符和表达式

    一.     分类 C语言一共有34种运算符,10种运算类型,本节我们要掌握的有( 7 种) 算术运算符(+.-.*./.%). 关系运算符(>.>=.==.!=.<.<=). ...

  2. Ubuntu通过修改配置文件进行网络配置

    Ubuntu系统进行网络配置有的时候用图形界面不起作用,这种情况下可以直接修改某些启动脚本或配置文件 Ubuntu系统进行网络配置涉及到几个配置文件1./etc/network/interfaces ...

  3. 自动装配、JavaConfig、XML 三种方案之间,怎么导入和混合配置?

    在 Spring 中,这些配置方案都不是互斥的.完全可以将 JavaConfig 的组件扫描和自动装配/或 XML 配置混合在一起. Q:如何在 JavaConfig 中引用 XML 配置? Q:怎么 ...

  4. HTML5-新增语义化结构标签

    总结目录结构: 1.简洁的DOCTYPE声明 2.新的布局结构标签 header,article,section,aside,footer 3.新的其它常用标签: nav,hgroup,figure, ...

  5. JVM指令

    本篇指令码表,参考自ASM文档手册,如果你对asm感兴趣,可到ASM官网下载手册学习. 一.本地变量操作指令(I,L,F,D,A这些前缀表示对int,long,float,double,引用进行操作) ...

  6. Linux中tree无法正常显示中文的解决方法

    tree命令以树状图列出目录的内容. 命令 tree -L n 的时候往往是无法正常显示中文的 先开始我以为是tree命令对中文是不支持的,后来百度了一下,网上有几个解决办法 安装新的tree可以解决 ...

  7. Hadoop自学系列集(三) ---- Hadoop安装

    这节就开始讲述Hadoop的安装吧.在这之前先配置下SSH免密码登录,为什么需要配置这个呢?大家都知道Hadoop集群中可能有几十台机器甚至是上千台机器,而每次启动Hadoop都需要输入密码才能够登录 ...

  8. 使用request获取访问者的真实IP

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  9. 浅谈 ASCII、Unicode、UTF-8,一目了然

    对于ASCII.Unicode.UTF-8这三种编码方式我们经常用到,也经常挂到嘴边,但他们是怎么来的,为什么要存在,具体是怎么个规则,我们并没有做深入了解,下面,就带你看一下他们到底是怎么回事吧…… ...

  10. java高并发系列 - 第21天:java中的CAS操作,java并发的基石

    这是java高并发系列第21篇文章. 本文主要内容 从网站计数器实现中一步步引出CAS操作 介绍java中的CAS及CAS可能存在的问题 悲观锁和乐观锁的一些介绍及数据库乐观锁的一个常见示例 使用ja ...