新书推荐
《基于浏览器的深度学习》
点击上图了解及购买
Web开发和深度学习相结合的实践技术指南。每章都配有完整的代码示例以及可视化效果,轻松易学。
编辑推荐
本书是Web开发和深度学习相结合的技术实践指南。在本书中,你将学到如何在浏览器中使用主要的JavaScript深度学习框架、抓取输入的Web编程以及WebGL的实现。基于浏览器的深度学习目前正处于萌芽阶段,这是在其强大之前关注它的极好时机,本书将帮你加入这一行动。准备好开始冒险了吗?
内容简介
《基于浏览器的深度学习》是一本在浏览器中进行深度学习应用的入门实践指南,主要内容包括神经网络架构、主流的JavaScript深度学习框架、深度学习的JavaScript基础、基于WebGL的GPU加速、浏览器上的数据抽取和操作以及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实践细节。
作者简介
泽维尔·布里(Xavier Bourry)是创业公司Jeeliz的联合创始人和CTO,专注于深度学习。他使用WebGLAPI开发了基于GPU的深度学习引擎,其性能比tfjs高,能够用于实时视频处理。
佐佐木凯(Ka iSasaki)是Arm公司的高级软件工程师,还是Apache Hivemall Committer。他擅长Web和数据处理平台,在使用APNS与GCM开发和维护通知平台、开发Hadoop和Storm等数据处理平台、开发/维护Presto集群等方面有丰富的经验。
克里斯托夫·科纳(Christoph Korner)是微软公司大数据和人工智能专家,之前是T-Mobile Austria的大数据技术主管、Kaggle Vienna机器学习社区的会议组织者。除本书外,他还著有《Learning Responsive Data Visualization》《Data Visualization with D3 and AngularjS》等。
中野礼·郎(Reiichiro Nakano)是Infostellar公司的软件开发工程师,专注于机器学习。
目录
译者序
前言
第 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 AlexNet16
2.1.2 GoogLeNet 17
2.1.3 ResNet 18
2.1.4 SqueezeNet19
2.2 循环神经网络22
2.2.1 LSTM. 23
2.2.2 GRU24
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.er55
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 多线程使用 WebWorker64
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.js131
6.4.2 Keras.js133
6.4.3 WebDNN133
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
你与世界
只差一个
公众号