动手学深度学习(一)——基本介绍

作者: SnailTyan | 来源:发表于2017-09-17 22:24 被阅读101次

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

本文主要是学习李沐直播课程的笔记。视频及内容的具体地址可参考:https://zhuanlan.zhihu.com/p/29125290

第一课:从上手到多类分类

课程首先介绍了深度学习的很多应用:例如增强学习、物体识别、语音识别、机器翻译、推荐系统、广告点击预测等。

课程目的:通过动手实现来理解深度学习,跟工业界应用相比,主要只是数据规模和模型复杂度的区别。

深度学习的轮子很多,例如Caffe,TensorFlow,mxnet,PyTorch,CNTK等。它们之间的主要区别在于:1.便利的开发;2.方便的部署。

Figure 1

mxnet之上的一个package是Gluon,主要目的是一次解决开发和部署。课程主要分为以下三个部分:

Figure 2

1. 环境配置

我的配置环境是Mac,Linux平台类似。

mxnet安装命令如下,前提是已经安装好了Anaconda,Anaconda的安装可以参考官网:

pip install mxnet

测试mxnet:

>>> import mxnet
>>> print mxnet.__version__
0.11.0

然后安装notedown,运行Jupyter并加载notedown插件:

pip install https://github.com/mli/notedown/tarball/master
jupyter notebook --NotebookApp.contents_manager_class='notedown.NotedownContentsManager'

通过ExecutionTime插件来对每个cell的运行计时,国内使用豆瓣源。

pip install jupyter_contrib_nbextensions -i https://pypi.douban.com/simple
jupyter contrib nbextension install --user
jupyter nbextension enable execute_time/ExecuteTime

2. NDArray

NDArray是MXNet储存和变换数据的主要工具,它与numpy非常类似。NDArray提供了CPU和GPU的异步计算,还提供了自动求导。NDArray的基本用法:

from mxnet import ndarray as nd

# 创建矩阵
nd.zeros((3, 4))
x = nd.ones((3, 4))
nd.array([[1,2],[2,3]])
y = nd.random_normal(0, 1, shape=(3, 4))

# 查看矩阵大小
y.shape

# 查看矩阵元素个数
y.size

# 矩阵加法
x + y

# 矩阵乘法
x * y

# 指数运算
nd.exp(y)

# 矩阵乘法
nd.dot(x, y.T)

# 广播操作
a = nd.arange(3).reshape((3,1))
b = nd.arange(2).reshape((1,2))
print('a:', a)
print('b:', b)
print('a+b:', a+b)

# NDArray与Numpy的转换
import numpy as np
x = np.ones((2,3))
y = nd.array(x)  # numpy -> mxnet
z = y.asnumpy()  # mxnet -> numpy
print([z, y])

NDArray的自动求导:

import mxnet.ndarray as nd
import mxnet.autograd as ag


# 定义矩阵
x = nd.array([[1, 2], [3, 4]])

# 添加自动求导
x.attach_grad()


# 记录x的变化
with ag.record():
    y = x * 2
    z = y * x

# 求导
z.backward()

# 判断导数是否相等
x.grad == 4*x

相关文章

  • 动手学深度学习(一)——基本介绍

    文章作者:Tyan博客:noahsnail.com | CSDN | 简书 本文主要是学习李沐直播课程的笔记。视频...

  • 学习Pytorch遇到的一些问题(一)

    基本介绍 这周开始学习深度学习的部分知识,参考的书是《动手学深度学习》(PyTorch版),在操作过程中遇到一些小...

  • 2022-02-15

    《动手学深度学习》环境搭建教程指南—windows10系统 本文在李沐博士的《动手学深度学习》 — 动手学深度学习...

  • 动手学深度学习PyTorch版

    课程介绍 本课程面向希望更多的通过代码实践去学习深度学习原理的同学和在职人士。 《动手学深度学习》是2019年国内...

  • Dropout

    李沐 《动手学深度学习》 第三章 3.13 丢弃法 除了前一节介绍的权重衰减以外,深度学习模型常常使用丢弃法(dr...

  • mxnet:如何对多维NDArray按维度操作?

    参考: 动手学深度学习第3.6.3章节.

  • 一. 线性回归,softmax分类,多层感知机

      疫情期间,借助《动手学深度学习》,学习pytorch的代码,顺便记录一些基础知识 1.线性回归--基本要素 1...

  • 动手学深度学习

    线性回归 一.主要内容包括: 1.线性回归的基本要素 2.线性回归模型从零开始的实现 3.线性回归模型使用pyto...

  • 线性回归的实现

    选自 李沐 《动手学深度学习》 第三章。 3.3 线性回归的简洁实现 随着深度学习框架的发展,开发深度学习应用变得...

  • 动手学深度学习笔记(一)

    一、使用NDArray来处理数据 首先从 MXNet 导入ndarray模块。nd是ndarray的缩写形式。fr...

网友评论

    本文标题:动手学深度学习(一)——基本介绍

    本文链接:https://www.haomeiwen.com/subject/iwomsxtx.html