动手学深度学习 2 Prerequisite

Prerequisite

1. 环境配置

环境配置主要包括:

  • 安装miniconda,创建虚拟环境 gluon
  • 在该环境中安装 mxnet, d2lzh, jupyter, matplotlib, pandas

1.1 安装 miniconda,创建虚拟环境

直接在 miniconda 官网下载安装即可,安装时需要添加系统环境变量。
创建虚拟环境 gluon

# 创建虚拟环境
conda create -n gluon python=3.6
# 激活虚拟环境
conda activate gluon

1.2 安装相关包

在官网下载的课程材料压缩包中有environment.yml文件,里面有依赖的包和版本号,使用文本编辑器打开后查看,再用conda安装。

pip install mxnet
pip install d2lzh==0.8.11
pip install jupyter==1.0.0
pip install matplotlib==2.2.2
pip install pandas==0.23.4

然后环境就搭建完毕了。

1.3 问题

在课程材料中有代码如下

conda env create -f environment.yml

yaml 语言(或者说是一种规范吧)可以编写 .yml 文件,和 json 一样是配置文件。但是运行时报错了,只能一个一个包单独安装。
该书的论坛中有详细的环境安装说明

2. 数据操作

NDArray是MXNet中储存和变换数据的主要工具,类似于NumPy,创建、运算、索引操作和Numpy相同。

与 NumPy 之间的互换

from mxnet import nd
import numpy as np

P = np.ones((2, 3))
D = nd.array(P)  # NumPy 转换成 NDArray
D.asnumpy()  # NDArray 转换成 Numpy

3. 自动求梯度

from mxnet import nd, autograd
x =  nd.arange(4).reshape((4,1))
x.attach_grad() # 申请记录梯度的内存

with autograd.record():  # 调用 record() 函数记录相关计算
    y = 2 * nd.dot(x.T, x)

y.backward()  # 计算梯度
x.grad  # 计算得出的梯度

总结:

  • autograd模块可自动化求导过程

  • autograd模块可以对一般的命令式函数进行求导

  • MXNet的运行模式包括训练模式和预测模式。我们可以通过autograd.is_training()来判断运行模式。在不同的模式下得到的结果可能不一样。

posted @ 2020-02-03 16:30  HaricotVert  阅读(303)  评论(0)    收藏  举报