《深度学习原理与Pytorch实战》(第二版)
第1章 深度学习简介
深度学习——利用深度人工神经网络来进行自动分类、预测和学习的技术,深度学习=深度人工神经网络
超过三层的神经网络都可以叫做深度神经网络
人工神经网络的关键算法——反向传播算法
深度网络架构,即整个网络体系的构建方式和拓扑连接结构,主要分为3种:前馈神经网络、卷积神经网络、循环神经网络
前馈神经网络:也称全连接网络(fully connected neural network)
所有节点都分为一层一层的,每个节点只跟相邻层节点而且是全部节点相连接。一般分为输入层、输出层、隐含层深度学习重要的本领——从海量的数据中自动学习,抽取数据中的特征
第2章 Pytorch简介
- 使用切片(slicing)来访问张量,访问x中的第3列的全部元素,则输入: x[:,2]——书P22
- 一个计算图(computational graph)包括两类节点:变量(variable)和运算(computation)
传统的深度学习框架(Tensorflow、Theano等)使用静态计算图;Pytorch使用动态计算图
这个计算图,应该就是用Netron软件可视化出来的结果
看计算图的时候注意,箭头的指向,是由输出指向输入,例如y=x+2,则箭头由y指向+2,再指向x
- Pytorch中的一些技术细节——书P30
a. 进行运算的对象维度匹配
b. 不能直接对自动微分变量进行数值更新,只能对其的data属性的变量进行操作,例如对a操作,则对a.data进行操作
c. 在函数后加上_符号,就表明要用这个函数的计算结果更新当前的变量 - 权重weight、偏置bias
第3章 单车预测器——你的第一个神经网络
- 神经网络的运行通常包括前馈的预测过程(或称为决策过程)和反馈的学习过程——书P37
在反馈过程中,每个输出神经元会首先计算预测误差,然后将误差沿着网络的所有连边进行反向传播,得到每个隐含节点的误差,最后根据每条连边所连通的两个节点的误差计算连边上的权重更新量,从而完成学习和调整 - 科学家已从理论证明,用有限多的隐含神经元可以逼近任意的有限区间内的曲线,这叫做通用逼近定理(universal approximation theorem)
- 参数的更新要用到反向传播法,而pytorch已经将此算法用backward来表示了
- 为什么要清空梯度?
因为backward()函数是会累加梯度的。在进行一次训练之后,立即进行梯度反传,所以不需要系统累加梯度,不清空梯度则有可能导致模型无法收敛 - 一般训练集:测试集=10:1——书P62
——2024.5.3
《深度学习原理与Pytorch实战》(第二版)的更多相关文章
- JavaScript 高级程序设计第二版
20.4 部署 20.4.1 构建 构建过程始于在源控制中定义用于存储文件的逻辑结构.最好避免使用一个文件存放所有的JavaScript,遵循以下面向对象语言中的典型模式:将每个对象或自定义了类别分别 ...
- JavaScript 高级程序设计 第二版
function outputNumbers(count) { (function () { for (var i =0;i < count; i++) { ...
- javascript高级程序设计第二章知识点提炼
这是我整理的javascript高级程序设计第二章的脑图,内容也是非常浅显与简单.希望您看了我的博客能够给我一些意见或者建议.
- javascript高级程序设计---第二、三章
在HTML中引用javaScript javascript的几个属性 type async(异步加载 只适用于外部JS且IE8以上 HTML5规范 先于load执行) src defer(延迟加载 ...
- javascript高级程序设计第二章
看后总结: 1.js代码用得最多的两种加载方式: a)外部文件形式:<script type="text/javascript" src="jquery.min.j ...
- 读书笔记 - javascript 高级程序设计 - 第二章 在Html中使用JavaScript
1 <script>的6个属性 async 立即下载当前script标签的外部脚本 但不能影响别的 charset 没用了 defer 文档显示之后再执行脚本,只对外部脚本有效 lan ...
- 《JavaScript高级程序设计》(第二版)
这本书的作者是 Nicholas C.Zakas ,博客地址是 http://www.nczonline.net/ ,大家可以去多关注,雅虎的前端工程师,是YUI的代码贡献者,可想而知这本书得含金量, ...
- 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介
前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...
- JavaScript高级程序设计(第三版)学习笔记20、21、23章
第20章,JSON JSON(JavaScript Object Notation,JavaScript对象表示法),是JavaScript的一个严格的子集. JSON可表示一下三种类型值: 简单值: ...
- (读书笔记)函数参数浅析-JavaScript高级程序设计(第3版)
ECMAScript函数不介意传递的参数个数,因为在其内部是用一个数组进行表示的.在函数体内可以通过arguments对象来访问这个参数数组,就像我们正常访问数组一样处理. arguments对象只是 ...
随机推荐
- vue2中安装vuex
2022年2月7日,vue3成为默认版本,npm i vue安装的直接就是vue3了 npm i -vuex 安装的是vuex4 vuex4只能在vue3中使用 vue2中,要用vuex3版本,安装 ...
- SpringBoot集成LDAP同步数据
1.pom引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...
- 第一次画pcb学到的知识
第一次画pcb学到的知识 1. Typec (6针) 其中的CC1.CC2引脚为快充协议的引脚,用不到的时候串个5.1K的电阻接地s 2. AMS117降压电路 AMS1117芯片的输入电压都要一个1 ...
- Scala 复杂分词求和(二元组)
1 package chapter07 2 3 object Test18_ComplexWordCount { 4 def main(args: Array[String]): Unit = { 5 ...
- HTTP编码和解码与基本认证
咱们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流.那么在这二者之间的转换规则就须要一个统一的标准,不然把计算机上文档就乱码了:因而为了实现转换标准,各类字符集标准 ...
- Redis redis-cli 你需要知道这些有用的命令
一.--stat 输出当前 redis 服务节点状态 命令:redis-cli -h host -p port --stat 输出: 连续输出,默认interval 1s 键数 | 内存 | 客户端数 ...
- #二分图匹配#洛谷 5771 [JSOI2016]反质数序列
题目 给出 \(n\) 个正整数,问最大的子集使得任意两个数的和都不是质数 \(n\leq 3*10^3\) 分析 如果把两个数的和为质数连边,等价于求最大独立集. 由于只有偶数加奇数才可能产生质数( ...
- JVM—对象的创建流程与内存分配
JVM-对象的创建流程与内存分配 创建流程 对象创建的流程图如下: 对象的内存分配方式 内存分配的方式有两种: 指针碰撞(Bump the Pointer) 空闲列表(Free List) 分配方式 ...
- 如何实现OpenHarmony的OTA升级
OTA简介 随着设备系统日新月异,用户如何及时获取系统的更新,体验新版本带来的新的体验,以及提升系统的稳定性和安全性成为了每个厂商都面临的严峻问题.OTA(Over the Air)提供对设备远程升级 ...
- [HAOI2007,P2216,BZOJ1047]理想的正方形单调队列解法
题目描述 有一个 \(a \times b\) 的整数组成的矩阵,现请你从中找出一个 \(n \times n\) 的正方形区域,使得该区域所有数中的最大值和最小值的差最小. 输入格式 第一行为 \( ...