MXNet的安装以及一些常见错误处理

        MXNet是亚马逊使用的一个优秀的开源框架,能方便用到多GPU,功能强大,值得学习,本人是在已有Anaconda环境下安装,没有安装的也可以安装Miniconda,mini版本小很多,包含有conda软件包管理器和Python。

        目前对于深度学习框架,最热门的是Google的TensorFlow,后期一段时间主要学习MXNet,这个框架对于分布式有很好的支持,性能很好,占用显存小的优势。
关于安装Anaconda和CUDA,感兴趣的伙伴可以阅读:

视频换脸AISWAP技术示例https://blog.csdn.net/weixin_41896770/article/details/118114636

目录

1、新建一个虚拟环境(这样可以有效的管理不同的项目)

2、安装GPU版本与CPU版本的MXNet

3、安装d2l包,方便使用里面的函数和类

一些错误处理


1、新建一个虚拟环境(这样可以有效的管理不同的项目)

查看conda版本

conda --version  或 conda -V

conda 4.3.14
查看虚拟环境列表

conda env list

# conda environments:
#
myd2l                 *  D:\Anaconda3\envs\myd2l
root                     D:\Anaconda3

创建名称为myd2l的虚拟环境

conda create -n myd2l python=3.7

激活并进入环境(conda版本4.4以上是conda activate myd2l)

activate myd2l

(myd2l) C:\Users\Tony>

退出环境

deactivate

删除环境

conda remove -n myd2l --all

2、安装GPU版本与CPU版本的MXNet

Windows查看CUDA版本

nvcc --version 或 nvcc -V

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_May__3_19:41:42_Pacific_Daylight_Time_2021
Cuda compilation tools, release 11.3, V11.3.109
Build cuda_11.3.r11.3/compiler.29920130_0

或者进入“NVIDA控制面板”,查看“系统信息”,点击“组件”,将会看到NVCUDA64.DLL对应的产品名称!
版本对应查看地址,CUDA是11.3的版本,根据自己的版本来更改【本人的CUDA版本比较新,没有匹配的,目前最高是支持mxnet-cu110的1.8的版本,只能等后期了】

pip install mxnet-cu113==1.7.0 -f https://dist.mxnet.io/python

如果没有NVIDA GPU或CUDA,那就只能使用CPU版本

pip install mxnet==1.7.0.post1

3、安装d2l包,方便使用里面的函数和类

pip install d2l==0.17.3

安装d2l的时候如果报错,也是镜像问题,国外的容易超时,我们可以选择阿里或国内其他站点镜像,下载安装的速度快太多了

pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com d2lzh
import d2lzh as d2l
dir(d2l)

['Benchmark', 'RNNModel', 'Residual', 'VOCSegDataset', 'VOC_CLASSES', 'VOC_COLORMAP', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', 'autograd', 'bbox_to_rect', 'collections', 'corr2d', 'count_tokens', 'data_iter', 'data_iter_consecutive', 'data_iter_random', 'display', 'download_imdb', 'download_voc_pascal', 'evaluate_accuracy', 'gdata', 'get_data_ch7', 'get_fashion_mnist_labels', 'get_tokenized_imdb', 'get_vocab_imdb', 'gloss', 'gluon', 'grad_clipping', 'gutils', 'image', 'init', 'linreg', 'load_data_fashion_mnist', 'load_data_jay_lyrics', 'load_data_pikachu', 'load_data_time_machine', 'math', 'mkdir_if_not_exist', 'mx', 'nd', 'nn', 'np', 'os', 'plt', 'predict_rnn', 'predict_rnn_gluon', 'predict_sentiment', 'preprocess_imdb', 'random', 'read_imdb', 'read_voc_images', 'resnet18', 'semilogy', 'set_figsize', 'sgd', 'show_bboxes', 'show_fashion_mnist', 'show_images', 'show_trace_2d', 'squared_loss', 'sys', 'tarfile', 'text', 'time', 'to_onehot', 'train', 'train_2d', 'train_and_predict_rnn', 'train_and_predict_rnn_gluon', 'train_ch3', 'train_ch5', 'train_ch7', 'train_gluon_ch7', 'try_all_gpus', 'try_gpu', 'use_svg_display', 'utils', 'voc_label_indices', 'voc_rand_crop', 'zipfile']

除了常用的pip,当然也可以使用conda来安装,比如conda install pandas
查看安装了哪些包
conda list

一些错误处理

在安装的时候可能会遇到下载不完全,超时的错误,主要还是国外站点访问慢的原因
pip._vendor.urllib3.exceptions.SSLError: The operation did not complete (read) (_ssl.c:2178)
可以选择国内镜像,比如豆瓣

pip install mxnet -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

创建虚拟环境时报错
D:\>conda create --prefix="D:\\my_python\\envs\\TonyMXNET"  python=3.6.1
Fetching package metadata .....

CondaHTTPError: HTTP None None for url
Elapsed: None

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
SSLError(SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",),),)

还是网站的问题,选择境内清华大学的镜像,修改.condarc文件的地址,更容易下载,可以将https修改为http,这样也不存在SSL认证相关的报错问题了。
channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
show_channel_urls: true

安装mxnet时候报错
Traceback (most recent call last):
  File "", line 1, in
  File "D:\Anaconda3\envs\TonyD2L\lib\site-packages\mxnet\__init__.py", line 82, in
    from . import gluon
  File "D:\Anaconda3\envs\TonyD2L\lib\site-packages\mxnet\gluon\__init__.py", line 36, in
    from . import data
  File "D:\Anaconda3\envs\TonyD2L\lib\site-packages\mxnet\gluon\data\__init__.py", line 26, in
    from .dataloader import *
  File "D:\Anaconda3\envs\TonyD2L\lib\site-packages\mxnet\gluon\data\dataloader.py", line 278
    generator = lambda: [(yield self._batchify_fn([self._dataset[idx] for idx in batch]))
                        ^
SyntaxError: 'yield' inside list comprehension
语法错误,版本问题,不能太高版本,引起这个错误的是我开始指定的是python3.9的版本,后来改为3.7版本就可以了

测试是否安装成功

from mxnet import nd
dir(nd)

返回nd的属性与方法列表,就表示成功了,其中nd是ndarray的缩写形式,在MXNet中,是NDArray类,存储和变换数据的主要工具,和numpy的多维数组很相似,功能更强大,提供了GPU计算和自动求梯度等,使得NDArray更适合深度学习!

nd.array([[2,3,4],[5,4,5]])

类型是,当然也可以转为numpy类型,a.asnumpy()

上述是在命令行里面可以正常加载mxnet,发现在Jupyter Notebook中却不能加载。
ModuleNotFoundError: No module named 'mxnet'
原因是由于jupyter内核中指定的python路径和当前运行的python路径不一致导致的,我们可以查看jupyter核心模块地址
(myd2l) C:\Users\Tony> jupyter kernelspec list
Available kernels:
  python3    D:\Anaconda3\envs\myd2l\share\jupyter\kernels\python3
进入这个目录打开kernel.json,试着修改了地址发现无效。于是就直接在这个虚拟环境里面新增一个kernel来搞定
(myd2l) C:\Users\Tony>python -m ipykernel install --user --name=myd2l  --display-name py37
Installed kernelspec myd2l in C:\Users\Tony\AppData\Roaming\jupyter\kernels\myd2l

(myd2l) C:\Users\Tony> jupyter kernelspec list
Available kernels:
  myd2l      C:\Users\Tony\AppData\Roaming\jupyter\kernels\myd2l
  python3    D:\Anaconda3\envs\myd2l\share\jupyter\kernels\python3
可以看到成功增加了一个kernel,选择py37,试着加载mxnet,成功执行。

MXNet的安装以及一些常见错误处理_第1张图片

删除内核

jupyter kernelspec remove myd2l

查看kernel.json文件内容如下:
{
 "argv": [
  "D:\\Anaconda3\\envs\\myd2l\\python.exe",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "py37",
 "language": "python",
 "metadata": {
  "debugger": true
 }
}

你可能感兴趣的:(深度学习框架(MXNet),mxnet,深度学习,python,Jupyter)