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

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

报错: 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的组件也给装了】
MxNet(GPU版本)安装及相关配置(CUDA,CuDNN,Graphviz,d2l,虚拟环境配置)及最终建议

d2l软件包配置

这里有两种方式:
1.JupyterNotebook里面,命令前加上!
2.终端命令行激活虚拟环境,再用conda install 安装
MxNet(GPU版本)安装及相关配置(CUDA,CuDNN,Graphviz,d2l,虚拟环境配置)及最终建议

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所在的设备

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

用VSCODE跑MxNEt

可能会出现如下错误:
MxNet(GPU版本)安装及相关配置(CUDA,CuDNN,Graphviz,d2l,虚拟环境配置)及最终建议

报错提示:

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