动手学深度学习——第一课笔记(上)

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

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

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

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

机器学习项目:使用Keras和tfjs构建血细胞分类模型

人工智能的应用非常广泛,尤其是在医疗领域。先进的人工智能工具可以帮助医生和实验室技术人员更准确地诊断疾病。例如,尼日利亚的一位医生可以使用这个工具从他根本不了解...

2693
来自专栏机器之心

资源 | Luminoth:基于TensorFlow的开源计算机视觉工具包

3497
来自专栏小小挖掘机

数据城堡参赛代码实战篇(七)--- xgboost介绍及实战

小编们最近参加了数据城堡举办的“大学生助学金精准资助预测”比赛,以分组第19名的成绩进入了复赛,很激动有木有!在上一篇文章中,小编介绍了使用sklearn进行数...

3524
来自专栏人工智能头条

如何确保机器学习最重要的起始步骤"特征工程"的步骤一致性?

关于特征工程,业界有这么一句话:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限。

722
来自专栏AI科技大本营的专栏

用好这几款炼丹利器,调参从此得心应手

来源:PaperWeekly ▌01. Live CV 实现显示结果的CV开发环境 Live CV 是一个用于实现显示结果的计算机视觉算法开发环境,基于 Qt...

5266
来自专栏玉树芝兰

如何用Python和深度神经网络寻找近似图片?

给你10万张图片,让你从中找出与某张图片最为近似的10张,你会怎么做?不要轻言放弃,也不用一张张浏览。使用Python,你也可以轻松搞定这个任务。

1501
来自专栏目标检测和深度学习

用好这几款炼丹利器,调参从此得心应手 | Let's Fork

#实现显示结果的CV开发环境 ? Live CV 是一个用于实现显示结果的计算机视觉算法开发环境,基于 QtQuick 开发。它可以用于交互、链接和调整算法,以...

3748
来自专栏数据小魔方

think-cell chart系列9——折线图

今天跟大家分享think-cell chart系列的第9篇——折线图。 折线图是平时用的频率比较高的图表类型的了,下面教大家怎么在think-cell char...

5267
来自专栏机器学习算法与Python学习

TensorFlow的安装与初步了解

今天终于有时间一探滕三福了,TensorFlow(腾三福)是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tenso...

3556
来自专栏人人都是极客

【免费教学】在嵌入式中使用 TensorFlow Lite

第一期中,分享了 TensorFlow Lite 的一些基本知识。今天与大家分享 Android 平台上的一些 TensorFlow Lite 应用,先来一起看...

2553

扫码关注云+社区

领取腾讯云代金券