【笔记】花书——第二章 预备知识


第五步是`打开Jupyter记事本`。



jupyter notebook


这时在浏览器打开 http://localhost:8888 (通常会⾃动打开)就可以查看和运⾏本书中每⼀节的代码了。


本书中若⼲章节的代码会⾃动下载数据集和预训练模型,并默认使⽤美国站点下载。我们可以在运⾏Jupyter前指定MXNet使⽤国内站点下载书中的数据和模型(国外⽤⼾⽆须此操作)。



set MXNET_GLUON_REPO=https://apache-mxnet.s3.cn-north-1.amazonaws.com.cn/ jupyter notebook


#### 2.1.2 更新代码和运行环境


为了适应深度学习和MXNet的快速发展,本书的开源内容将定期发布新版本。我们推荐⼤家定期更新本书的开源内容(如代码)和相应的运⾏环境(如新版MXNet)。以下是更新的具体步骤。


**第⼀步是重新下载最新的包含本书全部代码的压缩包**。下载地址为 https://zh.d2l.ai/d2l-zh.zip 。  
 解压后进⼊⽂件夹“d2l-zh”。


**第⼆步是使⽤下⾯的命令更新运⾏环境**:



conda env update -f environment.yml


之后的激活环境和运⾏Jupyter步骤跟本节前⾯介绍的⼀致。


#### 2.1.3 使⽤GPU版的MXNe


。。。


#### 小结


`提示:这里对文章进行总结:`


• 为了能够动⼿学深度学习,`需要获取本书的代码并安装运⾏环境`。  
 • 建议⼤家`定期更新代码和运⾏环境`


#### 练习


`提示:这里进行练习:`  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b77850d9f6d74972895b060896d66733.png)


### 2.2 数据操作


在深度学习中,我们通常会频繁地对数据进⾏操作。作为动⼿学深度学习的基础,本节将介绍`如何对内存中的数据进⾏操作`。  
 在MXNet中,`NDArray`是⼀个类,也是存储和变换数据的主要⼯具。为了简洁,本书常将NDArray实例直接称作NDArray。如果你之前⽤过NumPy,你会发现**NDArray和NumPy的多维数组非常类似**。然而,**NDArray提供GPU计算和⾃动求梯度等**`更多功能`,这些使NDArray`更加适合深度学习`。


#### 2.2.1 创建NDArray



from mxnet import nd
x = nd.arange(12) #⽤arange函数创建⼀个⾏向量。
x


Out[2]:  
 [ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.]  
 <NDArray 12 @cpu(0)  
 #它是⻓度为12的⼀维数组,且被创建在CPU使⽤的内存上。其中“@cpu(0)”⾥的0没有特别的意义,并不代表特定的核。



x.shape # 获取NDArray实例的形状
x.size # 得到NDArray实例中元素(element)的总数
X = x.reshape((3, 4)) # 把⾏向量x的形状改为(3, 4),也就是⼀个3⾏4列的矩阵

nd.zeros((2, 3, 4)) # 创建⼀个各元素为0,形状为(2, 3, 4)的张量
nd.ones((3, 4)) # 创建各元素为1的张量。

通过Python的列表(list)指定需要创建的NDArray中每个元素的值。

Y = nd.array([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])

随机⽣成NDArray中每个元素的值。

下⾯我们创建⼀个形状为(3,4)的NDArray。它的每个元素都随机采样于均值为0、标准差为1的正态分布。

nd.random.normal(0, 1, shape=(3, 4))


#### 2.2.2 运算


#### 2.2.3 ⼴播机制


#### 2.2.4 索引


#### 2.2.5 运算的内存开销


#### 2.2.6 NDArray和NumPy相互变换


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ae88abe6606942b5831f9efbd149c477.png)


### 2.3 ⾃动求梯度


使⽤MXNet提供的`autograd模块`来⾃动求梯度。如果对本节中的数学概念(如梯度)不是很熟悉,可以参阅附录中“数学基础”⼀节。



from mxnet import autograd, nd


例⼦:对函数 y = 2x⊤x 求关于列向量 x 的梯度。


1、调⽤attach\_grad函数来申请存储梯度所需要的内存



x.attach_grad()


2、调⽤record函数来要求MXNet记录与求梯度有关的计算。



with autograd.record():
y = 2 * nd.dot(x.T, x)


3、调⽤backward函数⾃动求梯度。  
 ——需要注意的是,如果y不是⼀个标量,MXNet将默认先对y中元素求和得到新的变量,再求该变量有关x的梯度。



y.backward()


4、函数 y = 2x⊤x关于x 的梯度应为4x。现在我们来**验证⼀下求出来的梯度**是正确的。



In [2]: x
Out[2]:
[[0.]
[1.]
[2.]
[3.]]<NDArray 4x1 @cpu(0)>

In [6]: assert (x.grad - 4 * x).norm().asscalar() == 0
x.grad
Out[6]:
[[ 0.]
[ 4.]
[ 8.]
[12.]]<NDArray 4x1 @cpu(0)>


#### 2.3.2 训练模式和预测模式


从上⾯可以看出,在`调⽤record函数后,MXNet会记录并计算梯度`。


此外,默认情况下`autograd还会将运⾏模式从预测模式转为训练模式`。这可以通过调⽤is\_training函数来查看。


…


#### 小结


`提示:这里对文章进行总结:`


• 为了能够动⼿学深度学习,`需要获取本书的代码并安装运⾏环境`。  
 • 建议⼤家`定期更新代码和运⾏环境`


#### 练习


`提示:这里进行练习:`  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b77850d9f6d74972895b060896d66733.png)


### 2.4 xx





 **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/a20e016cf4bce74941afbc90a3578e3f.png)

![img](https://img-blog.csdnimg.cn/img_convert/846eaf3490d8885c42bc035dd814a362.png)

![img](https://img-blog.csdnimg.cn/img_convert/53c0242a49542f5e30ee6be580ba4da9.png)

![img](https://img-blog.csdnimg.cn/img_convert/cbfa69afb7ede118f8c1496831611275.png)

![img](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)

![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**

sdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**

![](https://img-blog.csdnimg.cn/img_convert/9d9e9a3fb32477b0a7464068d32792c9.jpeg)
  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值