MXnet1.7.0/1.8.0/cu11.0-2.0.0+win10+cuda11.0+py3

之前,我在win10上装了cuda11.0以及tf-gpu2.4.1,然后我的后续踩坑之路来了,在安装mxnet遇到了很多错误。目前仅安装上了cpu版本,gpu未试探出来,只能默默等开发者把cuda11.0的windows版本的mxnet-gpu开发出来了。
以下记录我的踩坑之路以及如何装上mxnet的cpu版本。(gpu目前还是没安上,以下有针对安gpu的一些失败问题与尝试)

最重要的话就是:目前来看,还是安装cuda10.1版本最稳定。

1.直接Pip 安装mxnet:
error: Microsoft Visual C++ 14.0 is required
前面是一大堆报错信息,大概意思是创建Numpy环境失败,倒数第二个error是error: Microsoft Visual C++ 14.0 is required,提示去官网上下载。
刚开始以为是Numpy库没有安装,结果看了看是安了的,后来才知道意思应该是numpy库依赖MVC,但是去官网下载,整体文件很大,可以自定义选择组件,但是我并不知道我缺什么组件,所以导致我自己下载完之后,仍然缺失这个环境。
也看了教程,尝试pip .whl但是仍然不行。所以乖乖下载了MVC,教程来源于:https://blog.csdn.net/weixin_40547993/article/details/89399825
资源:http://go.microsoft.com/fwlink/?LinkId=691126

然后再pip 已经下好了的whl

pip install mxnet-1.7.0-py2.py3-none-win_amd64.whl

(记得和编译环境在同一目录下)

成功了。
但是提示了很多红色,第一句是:
pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
大概意思就是:pip的依赖解析器目前没有考虑所有已安装的包。这种行为是下列依赖冲突的根源。
解决方法,按照他提示的冲突 ,没装的库装上,版本高的改低的,低的改高的。
因为我本身有一个tf2.4.1,他需要的numpy版本很高,而mxnet需要的numpy版本很低。

2.先安装tf2.3.0再安装mx1.7.0(cpu) (d2l)

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==2.3.0 --user
pip install mxnet-1.7.0-py2.py3-none-win_amd64.whl

在此注意:个人认为如果主要是为了实践mxnet,建议先安装tf再安装mxnet
因为个人情况而言,我的tf版本相对较高一点(2.3.0或者2.4.1的对我的mxnet1.7.0都有一些库不匹配,并且是tf的库高于了mx),先安装tf后,再安装mx,mx会根据自己库的版本,把相应库做降低,这样mx还能够正常使用(但肯定Tf会受到一定影响,具体都有啥影响还没试)。

在这里插入图片描述
有一个requets库不匹配。这个如果我改为低的,mx又不匹配,所以暂时放置这个问题。
这样安装下来,我的numpy库由1.20.0变为了1.16.6
在这里插入图片描述

定义pip库版本的命令:

pip install requets==2.3.0

查看版本:

pip list
import numpy
numpy.__version__

测试mxnet:

from mxnet import np, npx
from d2l import mxnet as d2l

npx.set_np()

缺失d2l库需要Pip

3.安装 mxnet-cu101==1.7.0 (gpu) (d2l-cu)

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

这个是cuda10.1的 (我的是cu11.0)安装后测试,发现说:缺少libmxnet.dll,(问题也可能不在于版本,而是就因为window有的Mxnet版本配置文件需要手动编译?)然后我把mxnet1.7.0cpu版本下的这个配置替换过来,然后就又可以运行了。
配置所在位置:E:\anaconda\envs\d2l_mx\Lib\site-packages\mxnet
(d2l_mx 是我当前的conda环境)
但是,这并不是跑在gpu的,仍然是跑在cpu上的,所以这个配置是决定跑在哪里的吗?有说mxnet1.6.0可以兼容cu11.0,后面试了也不行。。也有说,可以自己编译,还没有实践
测试mxnet是跑在cpu or gpu:

import mxnet as mx
 
mxgpu_ok = False
 
try:
    _ = mx.nd.array(1,ctx=mx.gpu(0))
    mxgpu_ok = True
except:
    mxgpu_ok = False
 
print(mxgpu_ok)

翻了github上关于windows上,mxnet兼容更高版本cuda11.0的问题:
https://github.com/awslabs/gluon-ts/issues/1374
大概意思是未来会继续生产,兼容win的更高版本,但是目前还没有。
具体:
在这里插入图片描述
在这里插入图片描述
意思就是window版本在生产了,但是现在无。

4.安装mxnet cu11.0 1.8.0 linux版本直接失败 (d2d_cu110)
安装mxnet cu11.0 1.8.0 linux.whl ,直接显示这个wheel不适合这个平台。

5.创建环境后,只安装Mxnet(cpu)1.7.0在这里插入图片描述
会缺失一些tf的东西,需要自己再pip上,如果之前安了tf,就只是有些版本不匹配问题。


Python package:https://www.lfd.uci.edu/~gohlke/pythonlibs/
mxnet windows 教程:https://mxnet.apache.org/versions/1.7.0/get_started/windows_setup
测试cpu gpu:https://zhuanlan.zhihu.com/p/260124804

6.安装cu10 1.6.0mxnet ,还是想在gpu跑
结果问题仍是找不到libmxnet.dll
找了很多解决方法:https://stackoverflow.com/questions/53286509/pyinstaller-missing-mxnet-dll
https://stackoverflow.com/questions/53286509/pyinstaller-missing-mxnet-dll
https://blog.csdn.net/huanghe_zhiyuan/article/details/108298193
https://zhuanlan.zhihu.com/p/41892378
可能需要手动编译。。先放置了这个问题

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值