【PyTorch深度学习-龙龙老师】-测试版202112
的。 怎么实现人工智能是一个非常广袤的问题。人工智能的发展主要经历了三个阶段,每 个阶段都代表了人们从不同的角度尝试实现人工智能的探索足迹。早期,人们试图通过总 结、归纳出一些逻辑规则,并将逻辑规则以计算机程序的方式实现,来开发出智能系统。 但是这种显式的规则往往过于简单,并且很难表达复杂、抽象的概念和规则。这一阶段被 称为推理期。 1970 年代,科学家们尝试通过知识库加推理的方式解决人工智能,通过构建庞大复杂 年代成为人工智能中的热门学 预览版202112 第 1 章 人工智能绪论 2 科。 在机器学习中,有一个通过神经网络来学习复杂、抽象逻辑的研究方向,称为神经网 络。神经网络方向的研究经历了两起两落。从 2012 年开始,由于算法效果极为显著,深层 神经网络技术在计算机视觉、自然语言处理、机器人等领域取得了重大突破,部分任务上 甚至超越了人类智能水平,开启了以深层神经网络为代表的人工智能的第三次复兴。深层 深度学习与其它算法比较 1.2 神经网络发展简史 本书将神经网络的发展历程大致分为浅层神经网络阶段和深度学习两个阶段,以 2006 年为大致分割点。2006 年以前,深度学习以神经网络和连接主义的名义发展,经历了两次 预览版202112 第 1 章 人工智能绪论 4 兴盛和两次寒冬;2006 年,Geoffrey Hinton 首次将深层神经网络命名为深度学习,自此开 启了深度学习的第三次复兴之路。0 码力 | 439 页 | 29.91 MB | 1 年前3Keras: 基于 Python 的深度学习库
换为实验结果,是做好研究的关键。 如果你在以下情况下需要深度学习库,请使用 Keras: • 允许简单而快速的原型设计(由于用户友好,高度模块化,可扩展性)。 • 同时支持卷积神经网络和循环神经网络,以及两者的组合。 • 在 CPU 和 GPU 上无缝运行。 查看文档,请访问 Keras.io。 Keras 兼容的 Python 版本: Python 2.7-3.6。 1.2 指导原则 • 用户友好。Keras HDF5 和 h5py (如果你需要将 Keras 模型保存到磁盘,则需要这些)。 • graphviz 和 pydot (用于可视化工具绘制模型图)。 然后你就可以安装 Keras 本身了。有两种方法安装 Keras: • 使用 PyPI 安装 Keras (推荐): sudo pip install keras 如果你使用 virtualenv 虚拟环境, 你可以避免使用 sudo: Keras? Keras (κέρας) 在希腊语中意为 号角。它来自古希腊和拉丁文学中的一个文学形象,首先出 现于 《奥德赛》中,梦神 (Oneiroi, singular Oneiros) 从这两类人中分离出来:那些用虚幻的景象 欺骗人类,通过象牙之门抵达地球之人,以及那些宣告未来即将到来,通过号角之门抵达之人。 它类似于文字寓意,κέρας (号角) / κραίνω (履行),以及 ἐλέφας0 码力 | 257 页 | 1.19 MB | 1 年前3动手学深度学习 v2.0
14.8.2 从特定于任务到不可知任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684 14.8.3 BERT:把两个最好的结合起来 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684 xiii 14.8.4 输入表示 . . . . . 这本书将从头开始教授深度学习的概念。有时,我们想深入研究模型的细节,这些的细节通常会被深度学习 框架的高级抽象隐藏起来。特别是在基础教程中,我们希望读者了解在给定层或优化器中发生的一切。在这 些情况下,我们通常会提供两个版本的示例:一个是我们从零开始实现一切,仅依赖张量操作和自动微分; 另一个是更实际的示例,我们使用深度学习框架的高级API编写简洁的代码。一旦我们教了您一些组件是如 何工作的,我们就可以在随后的教程中使用高级API了。 题的认真研究最近才进入高潮。我们希望随着深度学习理论的发展,这本书的未来版本将能够在当前版本无 法提供的地方提供见解。 有时,为了避免不必要的重复,我们将本书中经常导入和引用的函数、类等封装在d2l包中。对于要保存到包 中的任何代码块,比如一个函数、一个类或者多个导入,我们都会标记为#@save。我们在 16.6节 中提供了这 些函数和类的详细描述。d2l软件包是轻量级的,仅需要以下软件包和模块作为依赖项: #@save0 码力 | 797 页 | 29.45 MB | 1 年前3全连接神经网络实战. pytorch 版
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1 导入 pytorch 6 1.2 导入样本数据 7 2 构建神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20211006:完成本书第一版。 5 1. 准备章节 1.1 导入 pytorch 6 1.2 导入样本数据 7 本章节将神经网络训练之前的准备工作进行全面介绍。但我们并不介绍如何安装 pytorch,一是由 于不同版本的 pytorch 会依赖于不同的 cuda 工具,二是因为官网资料非常齐全,也有很多博客来 介绍,因此没有必要赘述。 1.1 导入 pytorch 首先我们需要明白一个术语:tensor。这个词被翻译为中文叫张量。1 tensor;而一些微分量,例如梯度、导数等也都是 tensor;矩阵也是张量;多张矩 阵或者多张图像也是张量(3 维张量)。我们在做实验时,可以将 tensor 理解为是“data”。 我们需要先导入 pytorch,顺便导入 numpy: import torch import numpy as np 现在我们尝试将 list 或者 np.array 转换为 pytorch 的数组: data1 =0 码力 | 29 页 | 1.40 MB | 1 年前3机器学习课程-温州大学-numpy使用总结
NumPy是什么? 6 标准的Python中用list(列表)保存值,可以当做数组使用,但因为列表 中的元素可以是任何对象,所以浪费了CPU运算时间和内存。 NumPy诞生为了弥补这些缺陷。它提供了两种基本的对象: ndarray:全称(n-dimensional array object)是储存单一数据类型的 多维数组。 ufunc:全称(universal function object)它是一种能够对数组进行处 scipy.org/doc/numpy/reference/ NumPy是什么? 7 Anaconda里面已经安装过NumPy。 原生的Python安装: · 在cmd中输入 安装之后,我们用导入这个库 > import numpy as np NumPy的安装 > pip install numpy 8 2.NumPy数组(ndarry)对象 01 NumPy概述 02 NumPy数组(ndarry)对象 03 ufunc函数 04 NumPy的函数库 9 1.1 认识 NumPy 数组对象 >import numpy as np # 导入NumPy工具包 >data = np.arange(12).reshape(3, 4) # 创建一个3行4列的数组 >data array([[ 0, 1, 2, 3], [ 4, 5, 6, 7]0 码力 | 49 页 | 1.52 MB | 1 年前3PyTorch OpenVINO 开发实战系列教程第一篇
Pytorch 在 2016 年由 facebook 发布的开源机器学习(深度 学习)框架,Pytorch 最初的来源历史可以追溯到另外两个 机器学习框架,第一个是 torch 框架,第二个是 Chainer,实 现了 Eager 模式与自动微分,Pytoch 集成了这两个框架的优 点, 把 Python 语言作为框架的首选编程语言,所以它的名字 是在 torch 的前面加上 Py 之后的 Pytorch。由于 取了之前一些深度学习框架优点,开发难度大大降低、很容易 构建各种深度学习模型并实现分布式的训练,因此一发布就引 发学术界的追捧热潮,成为深度学习研究者与爱好者的首选开 发工具。在 pytorch 发布之后两年的 2018 年 facebook 又把 caffe2 项目整合到 pytorch 框架中,这样 pytorch 就进一步 整合原来 caffe 开发者生态社区,因为其开发效率高、特别容 易构 PyTorch + OpenVINO 开发实战系列教程 第一篇 4 5. 在执行第三步的基础上,在命令行中输入下面两行代码,执 行结果如下: >>> import torch >>> torch._ _version_ _ '1.9.0+cu102' 其中第一行表示导入 pytorch 的包支持,第二行表示版本查询, 第三行是执行结果(GPU 版本)。 现在很多开发者喜欢使用 Ubuntu0 码力 | 13 页 | 5.99 MB | 1 年前3机器学习课程-温州大学-12深度学习-自然语言处理和词嵌入
Word2Vec 负采样 计算的角度来看,SkipGram非常消耗资源:尤其是我们将在 数据集中为每个训练样本做一次(很可能数千万次)。我们 需要做一些事情来提高效率。 一种方法是将目标分成两个步骤: 1.生成高质量的单词嵌入(不要担心下一个单词预测)。 2.使用这些高质量的嵌入来训练语言模型(进行下一个单词 预测)。 19 3.Word2Vec 负采样 并不是每次迭代都训练全部10 在训练过程开始之前,我们预先处理我们正在训练模型的文本。在这一步中, 我们确定词汇量的大小(我们称之为vocab_size,比如说,将其视为10,000)以及 哪些词属于它。在训练阶段的开始,我们创建两个矩阵 - Embedding矩阵和Context 矩阵。这两个矩阵在我们的词汇表中嵌入了每个单词(这vocab_size是他们的维度 之一)。第二个维度是我们希望每次嵌入的时间长度(embedding_size- 300是一个 /上下文单词:( thou实际邻 居),aaron,和taco(负样本)。我们继续查找它们的嵌入 - 对于输 入词,我们查看Embedding矩阵。对于上下文单词,我们查看Context矩 阵(即使两个矩阵都在我们的词汇表中嵌入了每个单词)。 23 3.Word2Vec 训练流程 现在我们需要一种方法将这些分数转化为看起来像概率的东西 : 使用sigmoid函数把概率转换为0和1。 然0 码力 | 44 页 | 2.36 MB | 1 年前3机器学习课程-温州大学-13深度学习-Transformer
件部分也是由相同数量 (与编码器对应)的解 码器(decoder)组成 的。 17 2.Transformer的工作流程 所有的编码器在结构上都是相同 的,但它们没有共享参数。每个 解码器都可以分解成两个子层。 18 2.Transformer的工作流程 从编码器输入的句子首先会经过一个自注意力(self-attention)层,这层帮助编码器在对每 个单词编码时关注输入句子的其他单词。 神经网络都完全一样(译注:另一种解读就是一层窗口为一个单词的一维卷积神经网络)。 解码器中也有编码器的自注意力(self-attention)层和前馈(feed-forward)层。除此之外, 这两个层之间还有一个注意力层,用来关注输入句子的相关部分(和seq2seq模型的注意力 作用相似)。 19 2.Transformer的工作流程 各种向量或张量是怎样在模型的不同部分中,将输入转化为输出的。 ,它就是下一层编码器的输出(也是一个向量列表)。 向量列表大小是我们可以设置的超参数:一般是我们训练集中最长句子的长度。 20 2.Transformer的工作流程 将输入序列进行词嵌入之后,每个单词都会流经编码器中的两个子层。 Transformer的一个核心特性,在这里 输入序列中每个位置的单词都有自己 独特的路径流入编码器。在自注意力 层中,这些路径之间存在依赖关系。 而前馈(feed-forward)层没有这些依赖0 码力 | 60 页 | 3.51 MB | 1 年前3机器学习课程-温州大学-09深度学习-目标检测
st等)。 12 1.目标检测概述 2.基于深度学习的Two Stages目标检测框架 (准确度有优势) 此类算法将检测问题分为两个阶段, 第一阶段生成大量可能含有目标的候选区域(Region Proposal),并附 加大概的位置信息; 第二个阶段对其进行分类,选出包含目标的候选区域并对其位置进行 修正(常使用R-CNN、Fast R-CNN、Faster R-CNN等算法)。 13 1.目标检测概述 3.基于深度学习的One Stage目标检测框架 (速度有优势) 此类检测算法属于端到端(End-to-End),不需要生成大量候选区域 的阶段,而是将问题转化为回归(Regression)问题处理,使用完整 图像作为输入,直接在图像的多个位置上回归出该位置的目标边框 及所属类别(常使用YOLO、SSD、CornerNet等算法)。 14 1.目标检测概述 输出非极大化抑制的结果 最后你要运行一下这个非极大值抑制,为了让内容更有趣一些,我们看看一张新的测 试图像,这就是运行非极大值抑制的过程。如果你使用两个anchor box,那么对于9个 格子中任何一个都会有两个预测的边界框,其中一个的概率??很低。但9个格子中,每 个都有两个预测的边界框,比如说我们得到的边界框是是这样的,注意有一些边界框可 以超出所在格子的高度和宽度(编号1所示)。接下来你抛弃概率很低的预测,去掉这0 码力 | 43 页 | 4.12 MB | 1 年前3机器学习课程-温州大学-03深度学习-PyTorch入门
可以定义多维数组,进行切片、改变维度、 数学运算等 可以定义多维数组,进行切片、改变维度、数学运 算等 不同点 1、产生的数组类型为 numpy.ndarray; 2、会将ndarray放入 CPU中进行运算; 3、导入方式为import numpy as np,后续 通过np.array([1,2])建立数组; 4、numpy中没有x.type()的用法,只能使用 type(x)。 1、产生的数组类型为torch 二维矩阵乘法 torch.mm() torch.mm(mat1, mat2, out=None) 其中???1 ∈ ℝ?×?,???2 ∈ ℝ?×?, 输出的??? ∈ ℝ?×? 该函数一般只用来计算两个二维矩阵的矩阵乘法,并且不支持 broadcast操作。 12 1.Tensor张量乘法 2. 三维带batch的矩阵乘法 torch.bmm() 由于神经网络训练一般采用mini-batch,经常输入的时 该函数的两个输入必须是三维矩阵并且第一维相同(表 示Batch维度), 不支持broadcast操作 13 1.Tensor张量乘法 3. 多维矩阵乘法 torch.matmul() torch.matmul(input, other, out=None) 支持broadcast操作,使用起来比较复杂。针对多维数据matmul() 乘法,可以认为该乘 法使用使用两个参数的后两个维度来0 码力 | 40 页 | 1.64 MB | 1 年前3
共 56 条
- 1
- 2
- 3
- 4
- 5
- 6