环境配置 - 本地安装 # 以下操作处于conda环境下 conda env list # 查看建立过的环境 conda env remove d2l-zh # 如果发现建立过名为d2l-zh的环境可以删掉重建 conda create -n d2l-zh python=3.8 # 建立名字为d2l-zh的环境 conda activate d2l-zh # 激活刚刚创建的环境 # 下载需要的包 (下载比较慢可以加上国内源 -i https://pypi.douban.com/simple) pip i
深度学习简介 定义以及与机器学习的关系 深度学习是指机器学习中的一类函数,能够逐级表示越来越抽象的概念或模式,他们的形式通常为多层神经网络,近年来,已逐渐成为处理图像、文本预料和声音信号等复杂高纬度数据的主要方法 ,属于机器学习的一类,外在特点是端到端的训练; 机器学习研究如何使计算机利用经验提高性能,属于人工智能领域的分支,也是实现人工智能的一种手段; 神经网络核心原则 交替使用现行和非线性处理单元,常被称为 “层”; 使用链式法则(即反向传播)来更新网络参数; 深度学习发展的原因 优秀的容量控制方法,如丢弃法使大型网络的训练不再受制于过拟合(大型神经玩两个学会记忆大部分训练数据的行为); 注意力机制解决了 深度学习基础 这一章节中,主要有以下相关知识点: 线性回归 详情请参见深度学习之线性回归; Softmax回归 详情请参见深度学习之Softmax; 多层感知机 详情请参见多层感知机
本文链接:https://blog.csdn.net/github_39655029/article/details/89151587 作为深度学习的基础,我们常会频繁对数据进行操作,以下则是介绍如何对内存中的数据进行常用操作的相关代码
name转换为numpy数组并存储到name1中 name1 = torch.from_numpy(name) 将name转换为Tensor数组并存储到name1中 自动求梯度(autograd) 动手学习深度学习 ,2.3 2020.1.28,好久没学习,今天开始学习。 深度学习过程中,常需要对函数进行求梯度,PyTorch提供的autograd包能够根据输入和前向传播过程自动构建计算图,并执行反向传播。
机器之心报道 项目作者:ShusenTang 参与:思 想要入门最前沿的深度学习,想要玩最常见的深度学习框架?那就用 PyTorch 版的《动手学深度学习》吧,零基础也能入门 DL。 李沐等人的开源中文书《动手学深度学习》现在有 PyTorch 版实现了。不论是原书中的示例代码,还是实战项目,原来的 MXNet 都可以无缝转化到 PyTorch 代码。 之前,亚马逊首席科学家李沐等人曾以电子版的形式在 GitHub 上开源了一本深度学习中文书籍——《动手学深度学习》,这是一本深度学习的入门教程类书籍。 最后,《动手学深度学习》与 PyTorch 也是非常好的搭档,也就是说我们不需要任何机器学习或深度学习背景知识,只需要了解基本数学与 Python 编程就可以了。 从 MXNet 到 PyTorch 这样看起来可能不太直观,我们可以通过两个案例看看原版《动手学深度学习》随书代码和 PyTorch 版之间的区别。
作为一名新手如何能够快速上手深度学习,在实践中使用深度学习呢?《动手学深度学习》是由亚马逊首席科学家、美国卡内基梅隆大学计算机博士李沐等人编著,带你从浅至深实践深度学习。 教程的目录以及学习路线: ? 目录如下: ? ? ? ?
第一课:从上手到多类分类 课程首先介绍了深度学习的很多应用:例如增强学习、物体识别、语音识别、机器翻译、推荐系统、广告点击预测等。 课程目的:通过动手实现来理解深度学习,跟工业界应用相比,主要只是数据规模和模型复杂度的区别。 深度学习的轮子很多,例如Caffe,TensorFlow,mxnet,PyTorch,CNTK等。
本文章基于李沐老师的《动手学深度学习》(pytorch版),在此学习观礼膜拜。 https://zh-v2.d2l.ai/ 课程论坛讨论:https://discuss.d2l.ai/c/16Pytorch 论坛: https://discuss.pytorch.org/ 深度学习介绍 当前深度学习和机器学习(在数学上的)的可解释性不是很好,更多地将其认定为黑盒,在等待更好的学术进展。 我推荐文章《CSDN博主「阿雪_」:跟李沐学AI 动手学深度学习 环境配置d2l、pytorch的安装 (windows环境、python版本3.7)》。 使用conda创建虚拟环境并激活。
优化与深度学习 优化与估计 尽管优化方法可以最小化深度学习中的损失函数值,但本质上优化方法达到的目标与深度学习的目标并不相同。 优化方法目标:训练集损失函数值 深度学习目标:测试集损失函数值(泛化性) %matplotlib inline import sys sys.path.append('/home/kesci/input 优化在深度学习中的挑战 局部最小值 鞍点 梯度消失 局部最小值 ?
在机器学习术语里,该数据集被称为训练数据集(training data set)或训练集(training set),一栋房屋被称为一个样本(sample),其真实售出价格叫作标签(label),用来预测标签的两个因素叫作特征 然而,大多数深度学习模型并没有解析解,只能通过优化算法有限次迭代模型参数来尽可能降低损失函数的值。这类解叫作数值解(numerical solution)。 在求数值解的优化算法中,小批量随机梯度下降(mini-batch stochastic gradient descent)在深度学习中被广泛使用。 学习率: ? 代表在每次优化中,能够学习的步长的大小 批量大小: ? dense = net[0] print(true_w, dense.weight.data) print(true_b, dense.bias.data) 两种实现方式的比较 从零开始的实现(推荐用来学习
import mxnet as mx from mxnet import nd from mxnet import gluon from mxnet import autograd from mxnet.gluon import nn from utils import load_data_fashion_mnist, accuracy, evaluate_accuracy 定义模型并添加丢弃层 # 定义模型 net = nn.Sequential() # 丢弃概率 drop_prob1 = 0.2 d
<NDArray 5x4 @cpu(0)> 丢弃法的本质 一般来说,在集成学习里,我们可以对训练数据集有放回地采样若干次并分别训练若干个不同的分类器;测试时,把这些分类器的结果集成一下作为最终分类结果。 事实上,丢弃法在模拟集成学习。丢弃法实质上是对每一个这样的数据集分别训练一个原神经网络子集的分类器。与一般的集成学习不同,这里每个原神经网络子集的分类器用的是同一套参数。因此丢弃法只是在模拟集成学习。 nd.dot(h2, W3) + b3 训练 # 定义交叉熵损失 softmax_cross_entropy = gluon.loss.SoftmaxCrossEntropyLoss() # 定义学习率
学习率 show_trace(gd(0.05)) epoch 10, x: 3.4867844009999995 ? 动态学习率 ?
Quincuntial/article/details/79348854 文章作者:Tyan 博客:noahsnail.com | CSDN | 简书 注:本文为李沐大神的《动手学深度学习
前戏 关于《动手学深度学习》 学过或正在学习MXNet框架的同学,一定很熟悉《动手学深度学习》这个课程。该课程算是第一个最硬国语版讲解深度学习的课程(从理论到实战)。 在线文档 离线文档 论坛 免费视频讲解(B站/斗鱼满足你) GitHub开源代码和文档 《动手学深度学习》这是一个深度学习的教学项目。 ——摘自《动手学深度学习》在线文档 这里粗暴po几张图 在线文档 link: http://zh.gluon.ai/ ? 今天Amusi在朋友圈看到一朋友发了"《动手学深度学习》0.7版发布,欢迎指正"的链接。讲真,起了一身鸡皮疙瘩,虽然Amusi还没有入MXNet这个坑,但也垂涎已久,我想将来迟早有个约会。 下面正式简单介绍《动手学深度学习》0.7版本 《动手学深度学习》0.7版本 李沐: 历经五个月将整个教程重写了一遍,希望能达到出版质量。
求导和反向传播:计算图可以帮助自动计算函数的导数,特别是在深度学习中的反向传播算法中。通过在计算图中计算每个节点的梯度,可以从输出端反向传播梯度到输入端,以便优化模型的参数。 z = u *x z.sum().backward() x.grad == u tensor([True, True, True, True]) 2.4、基础优化方法 梯度计算往往是深度学习中成本最贵的 小批量随机梯度下降是深度学习默认的求解方法。 两个重要的超参数是 批量大小和学习率。
对于离散值预测问题,我们可以使用诸如softmax回归这样的分类模型。softmax回归模型有多个输出单元。本章以softmax回归模型为例,介绍神经网络中的分类模型。
Quincuntial/article/details/79273631 文章作者:Tyan 博客:noahsnail.com | CSDN | 简书 注:本文为李沐大神的《动手学深度学习
线性回归是单层神经网络,设计的概念和技术适用于大多数深度学习模型;因此,我们以线性回归为例,学习深度学习模型的基本要素和表示方法。 线性回归模型的房屋价格预测表达式为 (2)损失函数 深度学习过程中需要衡量价格预测值与真实值之间的误差。通常会选取一个非负数作为误差,且数值越小表示误差越小。一个常用的选择是平方函数。 随机选取一组初始值 多次迭代,使每一次迭代的值都更小一点 迭代过程: 假定这一个小批量有B个数,学习率为\eta。(这两个是人为设定的超参数) 每次迭代对三个参数进行分别计算。 首先是对损失函数进行求导 然后求小批量对应的损失函数的导数的平均值,最后乘以学习率,得到减小量 根据减小量得到迭代后的w1、w2、b 模型预测 确定训练完成后,将模型参数再优化算法停止时的值分别记作 神经网络图 深度学习中,我们使用神经网络图直观地表现模型结构。 该图使用神经网络图表示本届中介绍的线性回归网络,倒数隐去了权重和偏差。 输入个数也叫做特征数或特征向量维度。
动手学deep learning ☁️本专栏会定期更新关于动手学深度学习的每章知识点的讲解,题目答案 如果喜欢,欢迎点赞,收藏 动手学深度学习-预备知识篇 线性代数篇 1-3题讲解 证明一个矩阵 *W2).sum(axis = [0,1]))) print(sum(sum(W2*W2))) print((W2*W2).sum(axis = [0,1])) 运行结果 下篇预备知识: 1.微分学实现绘画切线