失效链接处理 |
基于浏览器的深度学习 PDF 下载
本站整理下载:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/27916414.html
相关截图:
资料简介: 本书是一本在浏览器中进行深度学习应用的入门实践指南,主要内容包括神经网络架构、主流的JavaScript深度学习框架、深度学习的JavaScript基础、基于web GL的加速、浏览器上的数据提取和数据操作,以及TensorFlow.js实践应用。每章都配有完整的代码示例和可视化效果,轻松易学。书中还详细介绍TensorFlow.js中的重要模块tfjs-core、tfjs-layers、tfjs-node和tfjs-converter等。 全书共8章,第1章主要介绍深度学习相关的数学知识、概念及架构;第2章介绍在深度学习应用中常用的深度学习架构;第3章介绍用在浏览器上的三种不同JavaScript深度学习框架,即TensorFlow.js、WebDNN和Keras.js;第4章介绍在浏览器和Node.js中运行深度学习框架的JavaScript基础;第5章介绍如何将深度学习操作映射到GPU,并展示如何用WebGL实现神经网络;第6章介绍如何从浏览器提取数据,如从URL加载图片数据、从网络摄像头解析帧数据,或者从手机解析数据;第7章给出一些在浏览器中操作数据的实用方法;第8章通过一些小项目详细阐释TensorFlow.js实践细节。 资料目录: 译者序 前言 第 1 章 深度学习. . . . . . . . . . . . . . . . . . . . . . .1 1.1 深度神经网络的数学基础 . . . . 1 1.1.1 感知机||门控线性回归 . . . . 2 1.1.2 多层感知机. . . . . . . . . . . . . . . . .5 1.1.3 卷积和池化. . . . . . . . . . . . . . . . .5 1.1.4 激活函数 . . . . . . . . . . . . . . . . . . . 7 1.2 深度神经网络的训练. . . . . . . .11 1.2.1 损失函数的重要性 . . . . . . . . . 12 1.2.2 正则化 . . . . . . . . . . . . . . . . . . . .12 1.2.3 反向传播算法 . . . . . . . . . . . . . 13 1.2.4 优化方法. . . . . . . . . . . . . . . . . .13 1.3 本章小结. . . . . . . . . . . . . . . . . . . .14 第 2 章 神经网络架构. . . . . . . . . . . . . . . . .15 2.1 卷积神经网络 . . . . . . . . . . . . . . . 15 2.1.1 AlexNet . . . . . . . . . . . . . . . . . . 16 2.1.2 GoogLeNet. . . . . . . . . . . . . . . .17 2.1.3 ResNet . . . . . . . . . . . . . . . . . . . 18 2.1.4 SqueezeNet . . . . . . . . . . . . . . . 19 2.2 循环神经网络 . . . . . . . . . . . . . . . 22 2.2.1 LSTM . . . . . . . . . . . . . . . . . . . 23 2.2.2 GRU . . . . . . . . . . . . . . . . . . . . .24 2.3 深度强化学习 . . . . . . . . . . . . . . . 25 2.4 本章小结. . . . . . . . . . . . . . . . . . . .28 第 3 章 JavaScript 深度学习框架 . . . . 29 3.1 TensorFlow.js . . . . . . . . . . . . . . .29 3.1.1 TensorFlow.js 介绍 . . . . . . . . 30 3.1.2 XOR 问题 . . . . . . . . . . . . . . . . 30 3.1.3 解决 XOR 问题 . . . . . . . . . . . 32 3.1.4 网络架构. . . . . . . . . . . . . . . . . .37 3.1.5 张量 . . . . . . . . . . . . . . . . . . . . . . 39 3.1.6 张量操作. . . . . . . . . . . . . . . . . .40 3.1.7 模型训练. . . . . . . . . . . . . . . . . .43 3.1.8 TensorFlow.js 的生态 . . . . . . 46 3.2 WebDNN . . . . . . . . . . . . . . . . . . . 48 3.3 Keras.js . . . . . . . . . . . . . . . . . . . . 51 3.4 本章小结. . . . . . . . . . . . . . . . . . . .52 第 4 章 深度学习的 JavaScript 基础 . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.1 JavaScript 中的TypedArray . . . . . . . . . . . . . . . . 53 4.1.1 ArrayBu.er . . . . . . . . . . . . . . 55 4.1.2 DataView . . . . . . . . . . . . . . . . 56 4.2 JavaScript 中的并发 . . . . . . . . 58 4.2.1 JavaScript 的事件循环 . . . . . 58 4.2.2 用 Promise 创建一个异步函数 . . . . . . . . . . . . . . . . . .59 4.2.3 使用新的async/await语法 . . . . . . . . . . . . . . . . . . . . . . 61 4.2.4 多线程使用 WebWorker . . . 64 4.2.5 深度学习应用程序的处理循环 . . . . . . . . . . . . . . . . . .66 4.3 在 CPU/GPU 上加载资源 . . . . . . . . . . . . . . . . . . . . . . . . 66 4.3.1 Fetch API . . . . . . . . . . . . . . . . 67 4.3.2 标签编码. . . . . . . . . . . . . . . . . .69 4.3.3 one-hot 编码 . . . . . . . . . . . . . . 69 4.4 本章小结. . . . . . . . . . . . . . . . . . . .70 第 5 章 基于 WebGL 的 GPU加速 . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.1 WebGL 基础 . . . . . . . . . . . . . . . . 74 5.1.1 WebGL 工作流程 . . . . . . . . . . 76 5.1.2 片段着色器渲染 . . . . . . . . . . . 78 5.2 WebGL 实现常规计算 . . . . . . 85 5.2.1 调试 WebGL . . . . . . . . . . . . . 86 5.2.2 渲染纹理. . . . . . . . . . . . . . . . . .87 5.2.3 精度重要性. . . . . . . . . . . . . . . .92 5.2.4 优化器 . . . . . . . . . . . . . . . . . . . .94 5.2.5 GLSL 开发. . . . . . . . . . . . . . . .95 5.2.6 浮点型的特殊性 . . . . . . . . . . . 95 5.2.7 从 CPU 流向 GPU,反之亦然 . . . . . . . . . . . . . . . . . .99 5.3 使用纹理和着色器的矩阵计算 . . . . . . . . . . . . . . . . . . 101 5.3.1 标准的矩阵加法 . . . . . . . . . . 101 5.3.2 标准的矩阵乘法 . . . . . . . . . . 102 5.3.3 激活函数应用 . . . . . . . . . . . . 103 5.3.4 运用WGLMatrix库 . . . . . . . . . 104 5.4 手写数字识别应用 . . . . . . . . . 105 5.4.1 数据编码 . . . . . . . . . . . . . . . . 105 5.4.2 内存优化 . . . . . . . . . . . . . . . . 105 5.4.3 前向传播 . . . . . . . . . . . . . . . . 107 5.4.4 次尝试 . . . . . . . . . . . . . . 107 5.4.5 优化性能 . . . . . . . . . . . . . . . . 108 5.5 本章小结 . . . . . . . . . . . . . . . . . . 109 第 6 章 从浏览器中提取数据 . . . . . . . . 111 6.1 加载图像数据. . . . . . . . . . . . . .112 6.1.1 从图像中提取像素 . . . . . . . . 112 6.1.2 加载远程资源 . . . . . . . . . . . . 114 6.1.3 获取二进制块 . . . . . . . . . . . . 116 6.2 将像素数据渲染到屏幕上 . . 117 6.2.1 显示图片 . . . . . . . . . . . . . . . . 118 6.2.2 将像素数据渲染到画布 . . . . 119 6.2.3 插值图像数据 . . . . . . . . . . . . 122 6.2.4 在画布上绘制形状 . . . . . . . . 124 6.3 访问相机、麦克风和扬声器. . . . . . . . . . . . . . . . . . . . .126 6.3.1 从网络摄像头捕获图像 . . . . 126 6.3.2 用麦克风录音 . . . . . . . . . . . . 128 6.3.3 加载、解码和播放声音 . . . . 130 6.4 深度学习框架中的实用工具. . . . . . . . . . . . . . . . . . .131 6.4.1 TensorFlow.js . . . . . . . . . . . 131 6.4.2 Keras.js . . . . . . . . . . . . . . . . . 133 6.4.3 WebDNN . . . . . . . . . . . . . . . 133 6.5 本章小结 . . . . . . . . . . . . . . . . . . 135 第 7 章 高级数据操作的方法 . . . . . . . . 137 7.1 反序列化 Protobuf . . . . . . . . 138 7.1.1 解析 Caffe 模型参数 . . . . . . 139 7.1.2 解析 TensorFlow 图. . . . . . .141 7.1.3 浮点精度的注意事项 . . . . . . 142 7.2 用 Chart.js 绘制图表. . . . . . .143 7.2.1 探索不同的图表类型 . . . . . . 144 7.2.2 配置数据集 . . . . . . . . . . . . . . 146 7.2.3 更新值. . . . . . . . . . . . . . . . . . .147 7.2.4 选项和配置概述 . . . . . . . . . . 150 7.3 用画布画草图. . . . . . . . . . . . . .153 7.3.1 在画布上绘图 . . . . . . . . . . . . 154 7.3.2 提取笔画 . . . . . . . . . . . . . . . . 158 7.4 从麦克风计算频谱图. . . . . . .159 7.5 人脸检测与跟踪 . . . . . . . . . . . 162 7.5.1 用 Jeeliz FaceFilter跟踪人脸. . . . . . . . . . . . . . . . .162 7.5.2 使用 tracking.js 跟踪人脸 . . . . . . . . . . . . . . . . . . . . . 163 7.5.3 Chrome 中人脸检测的原生支持. . . . . . . . . . . . . . . . .165 7.6 本章小结 . . . . . . . . . . . . . . . . . . 167 第 8 章 基于 TensorFlow.js构建应用 . . . . . . . . . . . . . . . . . . . . 169 8.1 TensorFlow.js 实现手势识别. . . . . . . . . . . . . . . . . . .169 8.1.1 算法解说 . . . . . . . . . . . . . . . . 170 8.1.2 TensorFlow.js 项目准备 . . . 171 8.1.3 实例化 KNN 图像分类器 . . . . . . . . . . . . . . . . . . . . . 172 8.1.4 TensorFlow.js 迭代训练 . . . 173 8.1.5 小结. . . . . . . . . . . . . . . . . . . . .176 8.2 TensorFlow.js 实现文本生成 . . . . . . . . . . . . . . . . . . . . . . . 176 8.2.1 算法解说 . . . . . . . . . . . . . . . . 176 8.2.2 Keras 模型 . . . . . . . . . . . . . . .177 8.2.3 将 Keras 模型转换为TensorFlow.js 模型 . . . . . . . 178 8.2.4 项目准备 . . . . . . . . . . . . . . . . 178 8.2.5 在 TensorFlow.js 中导入Keras 模型 . . . . . . . . . . . . . . 179 8.2.6 TensorFlow.js 迭代训练 . . . 179 8.2.7 构造模型输入 . . . . . . . . . . . . 181 8.2.8 模型预测 . . . . . . . . . . . . . . . . 183 8.2.9 模型输出抽样 . . . . . . . . . . . . 184 8.2.10 小结. . . . . . . . . . . . . . . . . . . .186 8.3 TensorFlow.js 实现图像降噪. . . . . . . . . . . . . . . . . . .186 8.3.1 算法解说 . . . . . . . . . . . . . . . . 187 8.3.2 将 Keras 模型转换为TensorFlow.js 模型 . . . . . . . 188 8.3.3 项目准备 . . . . . . . . . . . . . . . . 189 8.3.4 初始化. . . . . . . . . . . . . . . . . . .190 8.3.5 应用流程 . . . . . . . . . . . . . . . . 190 8.3.6 加载测试数字图片 . . . . . . . . 191 8.3.7 更新噪声 . . . . . . . . . . . . . . . . 193 8.3.8 生成变形图片 . . . . . . . . . . . . 194 8.3.9 图片降噪 . . . . . . . . . . . . . . . . 195 8.3.10 初始化函数 . . . . . . . . . . . . . 196 8.3.11 小结. . . . . . . . . . . . . . . . . . . .197 8.4 本章小结 . . . . . . . . . . . . . . . . . . 197
8.5 后结论 . . . . . . . . . . . . . . . . . . 198 |