MxNet(GPU版本)安装及相关配置(CUDA,CuDNN,Graphviz,d2l,虚拟环境配置)及最终建议

Posted Space65536

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MxNet(GPU版本)安装及相关配置(CUDA,CuDNN,Graphviz,d2l,虚拟环境配置)及最终建议相关的知识,希望对你有一定的参考价值。

深度学习框架MxNet配置(GPU版本)

1.对应镜像:https://mirrors.aliyun.com/pypi/simple/mxnet/

  • 找到与自己电脑Python版本对应(命令行使用python --v查看对应版本)的版本下载
    2.在对应文件夹下ctrl+shift+右键在此处打开PowerShell窗口,复制文件夹名字mxnet-1.7.0.post2-py2.py3-none-win_amd64.whl,在命令行输入pip install +右键,剩下的文件名部分自动粘贴,回车。
    3.出错,先排除pip版本需要更新问题,命令行输入python -m pip install --upgrade pip
    不是pip版本问题会提示note: This is an issue with the package mentioned above, not pip.
    找找上面提到的包,看到提示跟numpy 相关→打开 AnacondaPrompt 输入pip install --upgrade numpy (直接在cmd命令行输入可能会出错),出现raise ReadTimeoutError考虑①换源(命令行输入:pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple)②科学上网。。。。真的是绝了,因为版本混乱不学Java,结果到现在依旧会被这种问题困扰到。。。。。。。。。
报错: No module named 'numpy.distutils._msvccompiler' in numpy.distutils;
分析:可能是因为昨天重装tb买的win10专业版,少了一些dll。然后从源码安装numpy是需要编译的,所以编译过程中出错了
解决:安装Visual Studio 2019 生成工具  选择安装c++生成工具  (根据python版本选择)


到https://wiki.python.org/moin/WindowsCompilers下载对应MinGW-w64Compiler(https://www.mingw-w64.org/downloads/)

MinGW 就是 GCC 的 Windows 版本 。 以上是 MinGW 的介绍,MinGW-w64 与 MinGW 的区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成 64位 或 32位 可执行程序
换源-中科大:

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes

最后解决:
1.科学上网安装mingw,因为清华源和中科大的源都装不了。
2.下载VS2022(Community):https://visualstudio.microsoft.com/zh-hans/downloads/【安装过程中会把编译MxNet的组件也给装了】

d2l软件包配置

这里有两种方式:
1.JupyterNotebook里面,命令前加上!
2.终端命令行激活虚拟环境,再用conda install 安装

CUDA,CuDNN

我的另一篇文章

Gaphaviz下载

这里可以不用下

在conda/anaconda中配置虚拟环境(搭建GPU版本mxnet的运行环境)

1.命令行创建

# 格式:conda create -n 虚拟环境名字  python=你想要的版本号
conda create -n gluon python=3.9
conda activate gluon

可能踩的坑:
1.An unexpected error has occurred. Conda has prepared the above report.
1)删除.condarc文件(这个文件的位置一般为C:\\User\\Administrator.condarc,如果设置了清华/中科大源,里面会保存这些镜像源的地址,删除了这个文件其实就是类似于恢复使用官方源)
2)清理缓存索引(运行命令:conda clean -i,可以删除conda中的缓存索引)
3)try close your VPN
2.激活环境后,在虚拟环境中安装mxnet(在命令行输入:pip install mxnet-cu100)

3.测试MxNet-GPU是否安装成功

import mxnet as mx
from mxnet import nd
 
# 简单的展示gpu配置成功
print(mx.cpu(), mx.gpu())
 
# NDArray在CPU上运算
x_cpu = nd.array([1, 2, 3])
print(x_cpu)                   # NDArray默认在CPU上 也就是物理内存上分配
print(x_cpu.context)           # 通过context来查看NDArray所在的设备
 
# NDArray在GPU上运算
x_gpu = nd.array([1, 2, 3], ctx=mx.gpu())
print(x_gpu)                   # NDArray默认在CPU上 也就是物理内存上分配
print(x_gpu.context)           # 通过context来查看NDArray所在的设备

用VSCODE跑MxNEt

可能会出现如下错误:

报错提示:

Running cells with ‘Python 3.9.13 (‘ohmy39’)’ requires ipykernel package.
Run the following command to install ‘ipykernel’ into the Python environment.
Command: ‘conda install -n ohmy39 ipykernel --update-deps --force-reinstall’

报错原因:

用vscode直接跑jupyter的时候,会出现这个错误。说明当前用的这个虚拟环境还不支持ipykernel。

解决:

# 非虚拟环境
conda install -n XXX ipykernel --update-deps   ## XXX为目标conda环境
# 虚拟环境(按照提示输入对应的命令即可)
conda install -n ohmy39 ipykernel --update-deps --force-reinstall

最后的建议

  1. 初学者放弃GPU版本的Mxnet吧,1.不要在本地(环境配置太多坑了)2.建议在Colab或者Kaggle上跑,蹭蹭免费的GPU
  2. 用PyTorch先入门把整个流程走一遍,后期有余力有兴趣再整MxNet

李沐老师的《动手学深度学习》相关网址:
课程材料:http://zh.gluon.ai
互动论坛:http://discuss.gluon.ai(有一些帖子可以为你在学习的过程中遇到的问题提供一些参考)
douyu直播:https://www.douyu.com/jiangmen

ubuntu16.04下安装CUDA,cuDNN及tensorflow-gpu版本过程


这篇文章主要依据两篇文章:
深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0
深度学习主机环境配置: Ubuntu16.04+GeForce GTX 1080+TensorFlow
不过在实际运行的过程中,有一定的不同之处,随着时间的推移,一些组件已经可以更方便的安装,不再需要自己编译了。一些流程也有所更改。因此我在这里把自己在ubuntu16.04下安装cuda,cudnn和gpu版tensorflow的流程写下来,供人参考。


安装显卡驱动

首先安装显卡驱动。首先看自己显卡

lspci | grep -i vga
lspci | grep -i nvidia

然后看显卡驱动

lsmod | grep -i nvidia

在ubuntu16.04中,更换驱动非常方便,去
系统设置->软件更新->附加驱动->切换到最新的NVIDIA驱动即可。应用更改->重启

再运行nvidia-smi来看看


安装CUDA

https://developer.nvidia.com/cuda-downloads,根据自己的系统下载对应安装包,下载的是runfile文件,而不是deb文件。下载好以后,运行

sudo ./cuda_8.0.44_linux.run --tmpdir=/tmp

开始安装。后面参数 tmpdir好像是为了放日志,具体是什么日志忘了=。= 安装开始以后,首先是一个协议,一直按回车到底以后,输入accept。其他的操作如下所示

Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48?
(y)es/(n)o/(q)uit: n

Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y

下面是安装时的输出信息:

Installing the CUDA Toolkit in /usr/local/cuda-8.0 …
Installing the CUDA Samples in /home/textminer …
Copying samples to /home/textminer/NVIDIA_CUDA-8.0_Samples now…
Finished copying samples.

===========
= Summary =
===========

Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/textminer

Please make sure that
– PATH includes /usr/local/cuda-8.0/bin
– LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing with the name of this run file:
sudo .run -silent -driver

Logfile is /tmp/cuda_install_6583.log

安装完毕后,再声明一下环境变量,并将其写入到 ~/.bashrc 的尾部:

export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64$LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH

保存退出,运行source ~/.bashrc
测试是否安装成功

// 如果怕把samples搞坏了那就先搞一个备份,在备份里搞
cd /usr/local/cuda/samples/1_Utilities/deviceQuery 
sudo make
./deviceQuery

结果如下

之前有看到说要把gcc改成4.9的。不过我现在用5.4的也可以编译,就是有几个警告,不知道会不会有什么大的影响。


cuDNN安装

如果要使用gpu来对tensorflow进行加速,除了安装CUDA以外,cuDNN也是必须要安装的。跟cuda一样,去nvidia的官网下载cuDNN的安装包。不过这次没法直接下载,需要先注册,然后还要做个调查问卷什么的,稍微有点麻烦。我下的是cuDNN v5.1 Library for Linux这个版本。不要下cuDNN v5.1 Developer Library for Ubuntu16.04 Power8 (Deb)这个版本,因为是给powe8处理器用的,不是amd64.

下载下来以后,发现是一个tgz的压缩包,使用tar进行解压

tar -xvf cudnn-8.0-linux-x64-v5.1.tgz

安装cuDNN比较简单,解压后把相应的文件拷贝到对应的CUDA目录下即可

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

tensorflow安装

我之前已经安装了cpu-only版的tensorflow,所以现在要先把原先的tf卸载

sudo pip uninstall tensorflow

之后从https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.0rc1-cp35-cp35m-linux_x86_64.whl下载gpu版的tf

sudo pip install tensorflow_gpu-0.12.0rc1-cp35-cp35m-linux_x86_64.whl

来测试一下

$ipython
import tensorflow as tf

结果如下

没有报错,说明已经安装成功了。


在idea中调用tensorflow

之前在命令行中已经调用tensorflow成功了,没想到在idea中写程序时调用tensorflow又出现了错误:

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

Error importing tensorflow.  Unless you are using bazel,
you should not try to import tensorflow from its source directory;
please exit the tensorflow source tree, and relaunch your python interpreter
from there.

但是我并没有在tf的根目录下运行呀?而且同一个文件用命令行是可以运行的呀?为什么换idea来就不行了捏?
后来经过尝试发现,问题还是出在环境变量LD_LIBRARY_PATH中。光把环境变量写在~/.bashrc中是不行的,还需要写在/etc/profile下。因此,可以在/etc/profile的结尾处加上

## cuda
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64$LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH

登出后重新登陆,再打开idea,就可以在idea中调用tf啦

以上是关于MxNet(GPU版本)安装及相关配置(CUDA,CuDNN,Graphviz,d2l,虚拟环境配置)及最终建议的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu16.04下安装CUDA,cuDNN及tensorflow-gpu版本过程

Ubuntu21.10下安装TensorFlow及配置GPU支持(cuda11.1+cudnn8.0.5)

Ubuntu21.10下安装TensorFlow及配置GPU支持(cuda11.1+cudnn8.1.0)

Gluon学习02-使用GPU

Pytorch安装及环境配置详细教程(CUDA版本)

解决Google colab上安装GPU版本mxnet报错:libnvrtc.so.11.2: cannot open shared object file: No such file...