动手深度学习(一)环境安装

序言

从今天开始进行李牧大佬的《动手深度学习一书》的学习,首先要进行环境的安装和配置,在这里记录一下自己安装过程中踩过的一些坑。相关的资源在该项目的网址上都可以得到https://zh.gluon.ai/ 其中的PDF可以下载到本地进行阅读,同时会在本地的PDF中生成一个你下载当天的日期。书中的所有实例代码都有相应的jupyter notebook提供下载和运行。废话不多说,下面就开始进行环境的配置。

环境安装

1.官网教程

这一部分对应了书中的第二讲:预备知识部分。因为我是Windows用户,所以这里先只讲Windows部分的安装过程。

  1. 第一步是根据操作系统下载并安装Miniconda,在安装过程中需要勾选“Add Anaconda to the system PATH environment variable”选项,将python添加到环境变量中。
  2. 第二步是下载包含本书全部代码的压缩包。我们可以在浏览器的地址栏中输入 https://zh.d2l.ai/d2l-zh-1.0.zip 并按回车键进行下载。下载完成后,创建文件夹“d2l-zh”并将以上压缩包解压到这个文件夹。在该目录文件资源管理器的地址栏输入cmd进入命令行模式。
  3. 第三步是使用conda创建虚拟(运行)环境。conda和pip默认使用国外站点来下载软件,我们可以配置国内清华镜像来加速下载(国外用户无须此操作)
    # 配置清华PyPI镜像(如无法运行,将pip版本升级到>=10.0.0)
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

     

  4. 接下来使用conda创建虚拟环境并安装本书需要的软件。这里environment.yml是放置在代码压缩包中的文件。使用文本编辑器打开该文件,即可查看运行压缩包中本书的代码所依赖的软件(如MXNet和d2lzh包)及版本号。也就是说,environment.yml这个文件里面的包会在执行下面这条命令之后被自动安装好。但是问题来了,我在运行的时候会出现一个关于pip的warning,提示需要将pip这个包本身添加到environment.yml中。但是我在最后加了 - pip==1.19.1之后似乎还是会出现warning,所以暂时这里先不管它,等出了问题再说。
    conda env create -f environment.yml
    另外要注意,如果你的电脑上安装好了cuda(进入cmd,输入nvcc -V能查看版本并且没有报错),那么建议安装GPU版本的MXNet。具体操作:使用文本编辑器打开本书的代码所在根目录下的文件environment.yml,将里面的字符串“mxnet”替换成对应的GPU版本。例如,如果计算机上装的是8.0版本的CUDA,将该文件中的字符串“mxnet”改为“mxnet-cu80”。如果计算机上安装了其他版本的CUDA(如7.5、9.0、9.2等),对该文件中的字符串“mxnet”做类似修改(如改为“mxnet-cu75”“mxnet-cu90”“mxnet-cu92”等)。保存文件后退出。然后再执行
    conda env create -f environment.yml

     如果不小心已经安装好了虚拟环境,那么需要先卸载CPU版本的MXNet:

    pip uninstall mxnet

    然后再重新更新我们的虚拟环境配置:

    conda env update -f environment.yml

     

  5. 第四步是激活之前创建的环境。激活该环境是能够运行本书的代码的前提。激活之后,会在提示符前出现(gluon)字样,表示已经进入了虚拟环境。
    conda activate gluon  # 若conda版本低于4.4,使用命令activate gluon
    如需退出虚拟环境,可使用命令conda deactivate(注意这里没有参数)
  6. 打开Jupyter记事本
    jupyter notebook

     

2. 实际操作中会遇到的坑

  1. 如果你之前用过jupyter,有可能会在启动jupyter之后,路径不在你想要的当前路径,这个简单,改一下默认路径,重新开一遍即可。https://blog.csdn.net/u014552678/article/details/62046638
  2. 当你打开ndArray这个notebook,运行的时候,发现import mxnet 报错,“no module XXX”之类的错误,说明没有安装上mxnet,先回到虚拟环境中,在虚拟环境中pip list,看一下mxnet到底有没有装上,多半肯定是没装上,这时候要么重新安装一遍(或者按照上面说的方法update一下)虚拟环境,一定要等安装过程全部完成再退出。或者pip手动安装mxnet包(一定是在进入虚拟环境的情况下):
    pip install mxnet==version # cpu
    pip install mxnet-cu80==version # gpu

    然后我们在本地测试一下能否导入。在虚拟环境中:

    python
    
    import mxnet as mx

    如果没有报错,说明本地已经安装上了,还不行的话就是jupyter的问题了,接着往下看。

  3. 如果本地能导入mxnet,但是在jupyter中报错了,那么很可能是你的jupyter内核不是当前虚拟环境,而是虚拟环境外的python。怎么看呢,在jupyter中选择kernel,看一下有没有你创建的gulon这个选项,没有就说明不对,怎么办呢?原来是缺了一个conda的包。解决放入是,进入虚拟环境后,执行:

    conda install nb_conda

    然后重启jupyter notebook,看一下kernel就会多一个gluon的kernel,选择该kernel就可以了。

  4. 最后说一下,如果你安装了GPU版本,怎么验证我们GPU可用。

    import mxnet as mx
    from mxnet import nd
    
    x = nd.arange(12) # 创建cpu变量x
    y = x.copyto(mx.gpu()) # 将x赋值给y,保存在gpu上
    

    如果没有报错,那就大功告成了

安装环境就先讲这么多,还有很多碰到的问题可以看书中对应章节最后的二维码,用微信扫一扫就可以进入这一张章的讨论区。大家一起努力学习吧!

 

 

 

你可能感兴趣的:(动手深度学习(一)环境安装)