网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 深度学习之TensorFlow工程化项目实战 |
分类 | 教育考试-考试-计算机类 |
作者 | 李金洪编 |
出版社 | 电子工业出版社 |
下载 | ![]() |
简介 | 作者简介 目录 篇准备 章学习准备/2 1.1TensorFlow能做什么/2 1.2学习TensorFlow的必备知识/3 1.3学习技巧:跟读代码/4 1.4如何学习本书/4 第2章搭建开发环境/5 2.1准备硬件环境/5 2.2下载及安装Anaconda/6 2.3安装TensorFlow/9 2.4GPU版本的安装方法/10 2.4.1在Windows中安装CUDA/10 2.4.2在Linux中安装CUDA/13 2.4.3在Windows中安装cuDNN/13 2.4.4在Linux中安装cuDNN/14 2.4.5常见错误及解决方案/16 2.5测试显卡的常用命令/16 2.6TensorFlow1.x版本与2.x版本共存的解决方案/18 第3章实例1:用AI模型识别图像是桌子、猫、狗,还是其他/21 3.1准备代码环境并预训练模型/21 3.2代码实现:初始化环境变量,并载入ImgNet标签/24 3.3代码实现:定义网络结构/25 3.4代码实现:载入模型进行识别/26 3.5扩展:用更多预训练模型完成图片分类任务/28 第2篇基础 第4章用TensorFlow制作自己的数据集/30 4.1快速导读/30 4.1.1什么是数据集/30 4.1.2TensorFlow的框架/31 4.1.3什么是TFDS/31 4.2实例2:将模拟数据制作成内存对象数据集/32 4.2.1代码实现:生成模拟数据/32 4.2.2代码实现:定义占位符/33 4.2.3代码实现:建立会话,并获取显数据/34 4.2.4代码实现:模拟数据可视化/34 4.2.5运行程序/34 4.2.6代码实现:创建带有迭代值并支持乱序功能的模拟数据集/35 4.3实例3:将图片制作成内存对象数据集/37 4.3.1样本介绍/38 4.3.2代码实现:载入文件名称与标签/39 4.3.3代码实现:生成队列中的批次样本数据/40 4.3.4代码实现:在会话中使用数据集/41 4.3.5运行程序/42 4.4实例4:将Excel文件制作成内存对象数据集/42 4.4.1样本介绍/43 4.4.2代码实现:逐行读取数据并分离标签/43 4.4.3代码实现:生成队列中的批次样本数据/44 4.4.4代码实现:在会话中使用数据集/45 4.4.5运行程序/46 4.5实例5:将图片文件制作成TFRecord数据集/46 4.5.1样本介绍/47 4.5.2代码实现:读取样本文件的目录及标签/47 4.5.3代码实现:定义函数生成TFRecord数据集/48 4.5.4代码实现:读取TFRecord数据集,并将其转化为队列/49 4.5.5代码实现:建立会话,将数据保存到文件/50 4.5.6运行程序/51 4.6实例6:将内存对象制作成Dataset数据集/52 4.6.1如何生成Dataset数据集/52 4.6.2如何使用Dataset接口/53 4.6.3tf.data.Dataset接口所支持的数据集变换操作/54 4.6.4代码实现:以元组和字典的方式生成Dataset对象/58 4.6.5代码实现:对Dataset对象中的样本进行变换操作/59 4.6.6代码实现:创建Dataset迭代器/60 4.6.7代码实现:在会话中取出数据/60 4.6.8运行程序/61 4.6.9使用tf.data.Dataset.from_tensor_slices接口的注意事项/62 4.7实例7:将图片文件制作成Dataset数据集/63 4.7.1代码实现:读取样本文件的目录及标签/64 4.7.2代码实现:定义函数,实现图片转换操作/64 4.7.3代码实现:用自定义函数实现图片归一化/65 4.7.4代码实现:用第三方函数将图片旋转30°/65 4.7.5代码实现:定义函数,生成Dataset对象/66 4.7.6代码实现:建立会话,输出数据/67 4.7.7运行程序/68 4.8实例8:将TFRecord文件制作成Dataset数据集/69 4.8.1样本介绍/69 4.8.2代码实现:定义函数,生成Dataset对象/70 4.8.3代码实现:建立会话输出数据/71 4.8.4运行程序/72 4.9实例9:在动态图中读取Dataset数据集/72 4.9.1代码实现:添加动态图调用/72 4.9.2制作数据集/73 4.9.3代码实现:在动态图中显示数据/73 4.9.4扩展示例10:在TensorFlow2.x中操作数据集/74 4.10实例11:在不同场景中使用数据集/77 4.10.1代码实现:在训练场景中使用数据集/78 4.10.2代码实现:在应用模型场景中使用数据集/79 4.10.3代码实现:在训练与测试混合场景中使用数据集/80 4.11tf.data.Dataset接口的更多应用/81 第5章10分钟快速训练自己的图片分类模型/82 5.1快速导读/82 5.1.1认识模型和模型检查点文件/82 5.1.2了解“预训练模型”与微调(Fine-Tune)/82 5.1.3学习TensorFlow中的预训练模型库——TF-Hub库/83 5.2实例12:通过微调模型分辨男女/83 5.2.1准备工作/84 5.2.2代码实现:处理样本数据并生成Dataset对象/85 5.2.3代码实现:定义微调模型的类MyNASNetModel/88 5.2.4代码实现:构建MyNASNetModel类中的基本模型/88 5.2.5代码实现:实现MyNASNetModel类中的微调操作/89 5.2.6代码实现:实现与训练相关的其他方法/90 5.2.7代码实现:构建模型,用于训练、测试、使用/92 5.2.8代码实现:通过二次迭代来训练微调模型/94 5.2.9代码实现:测试模型/96 5.3扩展:通过摄像头实时分辨男女/100 5.4TF-slim接口中的更多成熟模型/100 5.5实例13:用TF-Hub库微调模型以评估人物的年龄/100 5.5.1准备样本/101 5.5.2下载TF-Hub库中的模型/102 5.5.3代码实现:测试TF-Hub库中的MobileNet_V2模型/104 5.5.4用TF-Hub库微调MobileNet_V2模型/107 5.5.5代码实现:用模型评估人物的年龄/109 5.5.6扩展:用TF-Hub库中的其他模型实现不同领域的分类任务/113 5.6总结/113 5.7练习题/114 5.7.1基于TF-slim接口的练习/115 5.7.2基于TF-Hub库的练习/115 第6章用TensorFlow编写训练模型的程序/117 6.1快速导读/117 6.1.1训练模型是怎么一回事/117 6.1.2用“静态图”方式训练模型/117 6.1.3用“动态图”方式训练模型/118 6.1.4什么是估算器框架接口(EstimatorsAPI)/119 6.1.5什么是tf.layers接口/120 6.1.6什么是tf.keras接口/121 6.1.7什么是tf.js接口/122 6.1.8什么是TFLearn框架/123 6.1.9该选择哪种框架/123 6.1.10分配运算资源与使用分布策略/124 6.1.11用tfdbg调试TensorFlow模型/127 6.1.12用钩子函数(Training_Hooks)跟踪训练状态/127 6.1.13用分布式运行方式训练模型/128 6.1.14用T2T框架系统更方便地训练模型/128 6.1.15将TensorFlow1.x中的代码移植到2.x版本/129 6.1.16TensorFlow2.x中的新特性——自动图/130 6.2实例14:用静态图训练一个具有保存检查点功能的回归模型/131 6.2.1准备开发步骤/131 6.2.2生成检查点文件/131 6.2.3载入检查点文件/132 6.2.4代码实现:在线性回归模型中加入保存检查点功能/132 6.2.5修改迭代次数,二次训练/135 6.3实例15:用动态图(eager)训练一个具有保存检查点功能的回归模型/136 6.3.1代码实现:启动动态图,生成模拟数据/136 6.3.2代码实现:定义动态图的网络结构/137 6.3.3代码实现:在动态图中加入保存检查点功能/138 6.3.4代码实现:按指定迭代次数进行训练,并可视化结果/139 6.3.5运行程序,显示结果/140 6.3.6代码实现:用另一种方法计算动态图梯度/141 6.3.7扩展实例16:在动态图中获取参数变量/142 6.3.8小心动态图中的参数陷阱/144 6.3.9扩展实例17:在静态图中使用动态图/145 6.4实例18:用估算器框架训练一个回归模型/147 6.4.1代码实现:生成样本数据集/147 6.4.2代码实现:设置日志级别/148 6.4.3代码实现:实现估算器的输入函数/148 6.4.4代码实现:定义估算器的模型函数/149 6.4.5代码实现:通过创建config文件指定硬件的运算资源/151 6.4.6代码实现:定义估算器/152 6.4.7用tf.estimator.RunConfig控制更多的训练细节/153 6.4.8代码实现:用估算器训练模型/153 6.4.9代码实现:通过热启动实现模型微调/155 6.4.10代码实现:测试估算器模型/158 6.4.11代码实现:使用估算器模型/158 6.4.12扩展实例19:为估算器添加日志钩子函数/159 6.5实例20:将估算器代码改写成静态图代码/161 6.5.1代码实现:复制网络结构/161 6.5.2代码实现:重用输入函数/163 6.5.3代码实现:创建会话恢复模型/163 6.5.4代码实现:继续训练/163 6.6实例21:用tf.layersAPI在动态图上识别手写数字/165 6.6.1代码实现:启动动态图并加载手写图片数据集/165 6.6.2代码实现:定义模型的类/166 6.6.3代码实现:定义网络的反向传播/167 6.6.4代码实现:训练模型/167 6.7实例22:用tf.kerasAPI训练一个回归模型/168 6.7.1代码实现:用model类搭建模型/168 6.7.2代码实现:用sequential类搭建模型/169 6.7.3代码实现:搭建反向传播的模型/171 6.7.4代码实现:用两种方法训练模型/172 6.7.5代码实现:获取模型参数/172 6.7.6代码实现:测试模型与用模型进行预测/173 6.7.7代码实现:保存模型与加载模型/173 6.7.8代码实现:将模型导出成JSON文件,再将JSON文件导入模型/175 6.7.9扩展实例23:在tf.keras接口中使用预训练模型ResNet/176 6.7.10扩展:在动态图中使用tf.keras接口/178 6.7.11扩展实例24:在静态图中使用tf.keras接口/178 6.8实例25:用tf.js接口后方训练一个回归模型/180 6.8.1代码实现:在HTTP的头标签中添加tfjs模块/180 6.8.2代码实现:用JavaScript脚本实现回归模型/181 6.8.3运行程序:在浏览器中查看效果/181 6.8.4扩展:tf.js接口的应用场景/182 6.9实例26:用估算器框架实现分布式部署训练/182 6.9.1运行程序:修改估算器模型,使其支持分布式/182 6.9.2通过TF_CONFIG进行分布式配置/183 6.9.3运行程序/185 6.9.4扩展:用分布策略或KubeFlow框架进行分布式部署/186 6.10实例27:在分布式估算器框架中用tf.keras接口训练ResNet模型,识别图片中是橘子还是苹果/186 6.10.1样本准备/186 6.10.2代码实现:准备训练与测试数据集/187 6.10.3代码实现:制作模型输入函数/187 6.10.4代码实现:搭建ResNet模型/188 6.10.5代码实现:训练分类器模型/189 6.10.6运行程序:评估模型/190 6.10.7扩展:全连接网络的优化/190 6.11实例28:在T2T框架中用tf.layers接口实现MNIST数据集分类/191 6.11.1代码实现:查看T2T框架中的数据集(problems)/191 6.11.2代码实现:构建T2T框架的工作路径及下载数据集/192 6.11.3代码实现:在T2T框架中搭建自定义卷积网络模型/193 6.11.4代码实现:用动态图方式训练自定义模型/194 6.11.5代码实现:在动态图中用metrics模块评估模型/195 6.12实例29:在T2T框架中,用自定义数据集训练中英文翻译模型/196 6.12.1代码实现:声明自己的problems数据集/196 6.12.2代码实现:定义自己的problems数据集/197 6.12.3在命令行下生成tfrecoder格式的数据/198 6.12.4查找T2T框架中的模型及超参,并用指定的模型及超参进行训练/199 6.12.5用训练好的T2T框架模型进行预测/201 6.12.6扩展:在T2T框架中,如何选取合适的模型及超参/202 6.13实例30:将TensorFlow1.x中的代码升级为可用于2.x版本的代码/203 6.13.1准备工作:创建Python虚环境/203 6.13.2使用工具转换源码/204 6.13.3修改转换后的代码文件/204 6.13.4将代码升级到TensorFlow2.x版本的经验总结/205 第3篇进阶 第7章特征工程——会说话的数据/208 7.1快速导读/208 7.1.1特征工程的基础知识/208 7.1.2离散数据特征与连续数据特征/209 7.1.3了解特征列接口/210 7.1.4了解序列特征列接口/210 7.1.5了解弱学习器接口——梯度提升树(TFBT接口)/210 7.1.6了解特征预处理模块(tf.Transform)/211 7.1.7了解因子分解模块/212 7.1.8了解加权矩阵分解算法/212 7.1.9了解Lattice模块——点阵模型/213 7.1.10联合训练与集成学习/214 7.2实例31:用wide_deep模型预测人口收入/214 7.2.1了解人口收入数据集/214 7.2.2代码实现:探索性数据分析/217 7.2.3认识wide_deep模型/218 7.2.4部署代码文件/219 7.2.5代码实现:初始化样本常量/220 7.2.6代码实现:生成特征列/220 7.2.7代码实现:生成估算器模型/222 7.2.8代码实现:定义输入函数/223 7.2.9代码实现:定义用于导出冻结图文件的函数/224 7.2.10代码实现:定义类,解析启动参数/225 7.2.11代码实现:训练和测试模型/226 7.2.12代码实现:使用模型/227 7.2.13运行程序/228 7.3实例32:用弱学习器中的梯度提升树算法预测人口收入/229 7.3.1代码实现:为梯度提升树模型准备特征列/230 7.3.2代码实现:构建梯度提升树模型/230 7.3.3代码实现:训练并导出梯度提升树模型/231 7.3.4代码实现:设置启动参数,运行程序/232 7.3.5扩展:更灵活的TFBT接口/233 7.4实例33:用feature_column模块转换特征列/233 7.4.1代码实现:用feature_column模块处理连续值特征列/234 7.4.2代码实现:将连续值特征列转化成离散值特征列/237 7.4.3代码实现:将离散文本特征列转化为one-hot与词向量/239 7.4.4代码实现:根据特征列生成交叉列/246 7.5实例34:用sequence_feature_column接口完成自然语言处理任务的数据预处理工作/248 7.5.1代码实现:构建模拟数据/248 7.5.2代码实现:构建词嵌入初始值/249 7.5.3代码实现:构建词嵌入特征列与共享特征列/249 7.5.4代码实现:构建序列特征列的输入层/250 7.5.5代码实现:建立会话输出结果/251 7.6实例35:用factorization模块的kmeans接口聚类COCO数据集中的标注框/253 7.6.1代码实现:设置要使用的数据集/253 7.6.2代码实现:准备带聚类的数据样本/253 7.6.3代码实现:定义聚类模型/255 7.6.4代码实现:训练模型/256 7.6.5代码实现:输出图示化结果/256 7.6.6代码实现:提取并排序聚类结果/258 7.6.7扩展:聚类与神经网络混合训练/258 7.7实例36:用加权矩阵分解模型实现基于电影评分的推荐系统/259 7.7.1下载并加载数据集/259 7.7.2代码实现:根据用户和电影特征列生成稀疏矩阵/260 7.7.3代码实现:建立WALS模型,并对其进行训练/261 7.7.4代码实现:评估WALS模型/263 7.7.5代码实现:用WALS模型为用户推荐电影/264 7.7.6扩展:使用WALS的估算器接口/265 7.8实例37:用Lattice模块预测人口收入/265 7.8.1代码实现:读取样本,并创建输入函数/266 7.8.2代码实现:创建特征列,并保存校准关键点/267 7.8.3代码实现:创建校准线性模型/270 7.8.4代码实现:创建校准点阵模型/270 7.8.5代码实现:创建随机微点阵模型/271 7.8.6代码实现:创建集合的微点阵模型/271 7.8.7代码实现:定义评估与训练函数/272 7.8.8代码实现:训练并评估模型/273 7.8.9扩展实例38:将点阵模型嵌入神经网络中/274 7.9实例38:结合知识图谱实现基于电影的推荐系统/278 7.9.1准备数据集/278 7.9.2预处理数据/279 7.9.3搭建MKR模型/279 7.9.4训练模型并输出结果/286 7.10总结:可解释性算法的意义/286 第8章卷积神经网络(CNN)——在图像处理中应用最广泛的模型/287 8.1快速导读/287 8.1.1认识卷积神经网络/287 8.1.2什么是空洞卷积/288 8.1.3什么是深度卷积/290 8.1.4什么是深度可分离卷积/290 8.1.5了解卷积网络的缺陷及补救方法/291 8.1.6了解胶囊神经网络与动态路由/292 8.1.7了解矩阵胶囊网络与EM路由算法/297 8.1.8什么是NLP任务/298 8.1.9了解多头注意力机制与内部注意力机制/298 8.1.10什么是带有位置向量的词嵌入/300 8.1.11什么是目标检测任务/300 8.1.12什么是目标检测中的上采样与下采样/301 8.1.13什么是图片分割任务/301 8.2实例39:用胶囊网络识别黑白图中服装的图案/302 8.2.1熟悉样本:了解Fashion-MNIST数据集/302 8.2.2下载Fashion-MNIST数据集/303 8.2.3代码实现:读取及显示Fashion-MNIST数据集中的数据/304 8.2.4代码实现:定义胶囊网络模型类CapsuleNetModel/305 8.2.5代码实现:实现胶囊网络的基本结构/306 8.2.6代码实现:构建胶囊网络模型/309 8.2.7代码实现:载入数据集,并训练胶囊网络模型/310 8.2.8代码实现:建立会话训练模型/311 8.2.9运行程序/313 8.2.10扩展实例40:实现带有EM路由的胶囊网络/314 8.3实例41:用TextCNN模型分析评论者是否满意/322 8.3.1熟悉样本:了解电影评论数据集/322 8.3.2熟悉模型:了解TextCNN模型/322 8.3.3数据预处理:用preprocessing接口制作字典/323 8.3.4代码实现:生成NLP文本数据集/326 8.3.5代码实现:定义TextCNN模型/327 8.3.6代码实现:训练TextCNN模型/330 8.3.7运行程序/332 8.3.8扩展:提升模型精度的其他方法/333 8.4实例42:用带注意力机制的模型分析评论者是否满意/333 8.4.1熟悉样本:了解tf.keras接口中的电影评论数据集/333 8.4.2代码实现:将tf.keras接口中的IMDB数据集还原成句子/334 8.4.3代码实现:用tf.keras接口开发带有位置向量的词嵌入层/336 8.4.4代码实现:用tf.keras接口开发注意力层/338 8.4.5代码实现:用tf.keras接口训练模型/340 8.4.6运行程序/341 8.4.7扩展:用TargetedDropout技术进一步提升模型的性能/342 8.5实例43:搭建YOLOV3模型,识别图片中的酒杯、水果等物体/343 8.5.1YOLOV3模型的样本与结构/343 8.5.2代码实现:Darknet-53模型的darknet块/344 8.5.3代码实现:Darknet-53模型的下采样卷积/345 8.5.4代码实现:搭建Darknet-53模型,并返回3种尺度特征值/345 8.5.5代码实现:定义YOLO检测模块的参数及候选框/346 8.5.6代码实现:定义YOLO检测块,进行多尺度特征融合/347 8.5.7代码实现:将YOLO检测块的特征转化为bboxattrs单元/347 8.5.8代码实现:实现YOLOV3的检测部分/349 8.5.9代码实现:用非极大值抑制算法对检测结果去重/352 8.5.10代码实现:载入预训练权重/355 8.5.11代码实现:载入图片,进行目标实物的识别/356 8.5.12运行程序/358 8.6实例44:用YOLOV3模型识别门牌号/359 8.6.1工程部署:准备样本/359 8.6.2代码实现:读取样本数据,并制作标签/359 8.6.3代码实现:用tf.keras接口构建YOLOV3模型,并计算损失/364 8.6.4代码实现:在动态图中训练模型/368 8.6.5代码实现:用模型识别门牌号/372 8.6.6扩展:标注自己的样本/374 8.7实例45:用MaskR-CNN模型定位物体的像素点/375 8.7.1下载COCO数据集及安装pycocotools/376 8.7.2代码实现:验证pycocotools及读取COCO数据集/377 8.7.3拆分MaskR-CNN模型的处理步骤/383 8.7.4工程部署:准备代码文件及模型/385 8.7.5代码实现:加载数据创建模型,并输出模型权重/385 8.7.6代码实现:搭建残差网络ResNet/387 8.7.7代码实现:搭建MaskR-CNN模型的骨干网络ResNet/393 8.7.8代码实现:可视化MaskR-CNN模型骨干网络的特征输出/396 8.7.9代码实现:用特征金字塔网络处理骨干网络特征/400 8.7.10计算RPN中的锚点/402 8.7.11代码实现:构建RPN/403 8.7.12代码实现:用非极大值抑制算法处理RPN的结果/405 8.7.13代码实现:提取RPN的检测结果/410 8.7.14代码实现:可视化RPN的检测结果/412 8.7.15代码实现:在MaskRCNN类中对ROI区域进行分类/415 8.7.16代码实现:金字塔网络的区域对齐层(ROIAlign)中的区域框与特征的匹配算法/416 8.7.17代码实现:在金字塔网络的ROIAlign层中按区域边框提取内容/418 8.7.18代码实现:调试并输出ROIAlign层的内部运算值/421 8.7.19代码实现:对ROI内容进行分类/422 8.7.20代码实现:用检测器DetectionLayer检测ROI内容,得到最终的实物矩形/426 8.7.21代码实现:根据ROI内容进行实物像素分割/432 8.7.22代码实现:用MaskR-CNN模型分析图片/436 8.8实例46:训练MaskR-CNN模型,进行形状的识别/439 8.8.1工程部署:准备代码文件及模型/440 8.8.2样本准备:生成随机形状图片/440 8.8.3代码实现:为MaskR-CNN模型添加损失函数/442 8.8.4代码实现:为MaskR-CNN模型添加训练函数,使其支持微调与全网训练/444 8.8.5代码实现:训练并使用模型/446 8.8.6扩展:替换特征提取网络/449 第9章循环神经网络(RNN)——处理序列样本的神经网络/450 9.1快速导读/450 9.1.1什么是循环神经网络/450 9.1.2了解RNN模型的基础单元LSTM与GRU/451 9.1.3认识QRNN单元/451 9.1.4认识SRU单元/451 9.1.5认识IndRNN单元/452 9.1.6认识JANET单元/453 9.1.7优化RNN模型的技巧/453 9.1.8了解RNN模型中多项式分布的应用/453 9.1.9了解注意力机制的Seq2Seq框架/454 9.1.10了解BahdanauAttention与LuongAttention/456 9.1.11了解单调注意力机制/457 9.1.12了解混合注意力机制/458 9.1.13了解Seq2Seq接口中的采样接口(Helper)/460 9.1.14了解RNN模型的Wrapper接口/460 9.1.15什么是时间序列(TFTS)框架/461 9.1.16什么是梅尔标度/461 9.1.17什么是短时傅立叶变换/462 9.2实例47:搭建RNN模型,为女孩生成英文名字/463 9.2.1代码实现:读取及处理样本/463 9.2.2代码实现:构建Dataset数据集/466 9.2.3代码实现:用tf.keras接口构建生成式RNN模型/467 9.2.4代码实现:在动态图中训练模型/468 9.2.5代码实现:载入检查点文件并用模型生成名字/469 9.2.6扩展:用RNN模型编写文章/471 9.3实例48:用带注意力机制的Seq2Seq模型为图片添加内容描述/471 9.3.1设计基于图片的Seq2Seq/471 9.3.2代码实现:图片预处理——用ResNet提取图片特征并保存/472 9.3.3代码实现:文本预处理——过滤处理、字典建立、对齐与向量化处理/475 9.3.4代码实现:创建数据集/477 9.3.5代码实现:用tf.keras接口构建Seq2Seq模型中的编码器/477 9.3.6代码实现:用tf.keras接口构建Bahdanau类型的注意力机制/478 9.3.7代码实现:搭建Seq2Seq模型中的解码器Decoder/478 9.3.8代码实现:在动态图中计算Seq2Seq模型的梯度/480 9.3.9代码实现:在动态图中为Seq2Seq模型添加检查点功能/480 9.3.10代码实现:在动态图中训练Seq2Seq模型/481 9.3.11代码实现:用多项式分布采样获取图片的内容描述/482 9.4实例49:用IndRNN与IndyLSTM单元制作聊天机器人/485 9.4.1下载及处理样本/486 9.4.2代码实现:读取样本,分词并创建字典/487 9.4.3代码实现:对样本进行向量化、对齐、填充预处理/489 9.4.4代码实现:在Seq2Seq模型中加工样本/489 9.4.5代码实现:在Seq2Seq模型中,实现基于IndRNN与IndyLSTM的动态多层RNN编码器/491 9.4.6代码实现:为Seq2Seq模型中的解码器创建Helper/491 9.4.7代码实现:实现带有Bahdanau注意力、dropout、OutputProjectionWrapper的解码器/492 9.4.8代码实现:在Seq2Seq模型中实现反向优化/493 9.4.9代码实现:创建带有钩子函数的估算器,并进行训练/494 9.4.10代码实现:用估算器框架评估模型/496 9.4.11扩展:用注意力机制的Seq2Seq模型实现中英翻译/498 9.5实例50:预测飞机发动机的剩余使用寿命/498 9.5.1准备样本/499 9.5.2代码实现:预处理数据——制作数据集的输入样本与标签/500 9.5.3代码实现:建立带有JANET单元的多层动态RNN模型/504 9.5.4代码实现:训练并测试模型/505 9.5.5运行程序/507 9.5.6扩展:为含有JANET单元的RNN模型添加注意力机制/508 9.6实例51:将动态路由用于RNN模型,对路透社新闻进行分类/509 9.6.1准备样本/509 9.6.2代码实现:预处理数据——对齐序列数据并计算长度/510 9.6.3代码实现:定义数据集/510 9.6.4代码实现:用动态路由算法聚合信息/511 9.6.5代码实现:用IndyLSTM单元搭建RNN模型/513 9.6.6代码实现:建立会话,训练网络/514 9.6.7扩展:用分级网络将文章(长文本数据)分类/515 9.7实例52:用TFTS框架预测某地区每天的出生人数/515 9.7.1准备样本/515 9.7.2代码实现:数据预处理——制作TFTS框架中的读取器/515 9.7.3代码实现:用TFTS框架定义模型,并进行训练/516 9.7.4代码实现:用TFTS框架评估模型/517 9.7.5代码实现:用模型进行预测,并将结果可视化/517 9.7.6运行程序/518 9.7.7扩展:用TFTS框架进行异常值检测/519 9.8实例53:用Tacotron模型合成中文语音(TTS)/520 9.8.1准备安装包及样本数据/520 9.8.2代码实现:将音频数据分帧并转为梅尔频谱/521 9.8.3代码实现:用多进程预处理样本并保存结果/523 9.8.4拆分Tacotron网络模型的结构/525 9.8.5代码实现:搭建CBHG网络/527 9.8.6代码实现:构建带有混合注意力机制的模块/529 9.8.7代码实现:构建自定义wrapper/531 9.8.8代码实现:构建自定义采样器/534 9.8.9代码实现:构建自定义解码器/537 9.8.10代码实现:构建输入数据集/539 9.8.11代码实现:构建Tacotron网络/542 9.8.12代码实现:构建Tacotron网络模型的训练部分/545 9.8.13代码实现:训练模型并合成音频文件/546 9.8.14扩展:用pypinyin模块实现文字到声音的转换/551 第4篇不错 0章生成式模型——能够输出内容的模型/554 10.1快速导读/554 10.1.1什么是自编码网络模型/554 10.1.2什么是对抗神经网络模型/554 10.1.3自编码网络模型与对抗神经网络模型的关系/555 10.1.4什么是批量归一化中的自适应模式/555 10.1.5什么是实例归一化/556 10.1.6了解SwitchableNorm及更多的归一化方法/556 10.1.7什么是图像风格转换任务/557 10.1.8什么是人脸属性编辑任务/558 10.1.9什么是TFgan框架/558 10.2实例54:构建DeblurGAN模型,将模糊相片变清晰/559 10.2.1获取样本/559 10.2.2准备SwitchableNorm算法模块/560 10.2.3代码实现:构建DeblurGAN中的生成器模型/560 10.2.4代码实现:构建DeblurGAN中的判别器模型/562 10.2.5代码实现:搭建DeblurGAN的完整结构/563 10.2.6代码实现:引入库文件,定义模型参数/563 10.2.7代码实现:定义数据集,构建正反向模型/564 10.2.8代码实现:计算特征空间损失,并将其编译到生成器模型的训练模型中/566 10.2.9代码实现:按指定次数训练模型/568 10.2.10代码实现:用模型将模糊相片变清晰/569 10.2.11练习题/572 10.2.12扩展:DeblurGAN模型的更多妙用/572 10.3实例55:构建AttGAN模型,对照片进行加胡子、加头帘、加眼镜、变年轻等修改/573 10.3.1获取样本/573 10.3.2了解AttGAN模型的结构/574 10.3.3代码实现:实现支持动态图和静态图的数据集工具类/575 10.3.4代码实现:将CelebA做成数据集/577 10.3.5代码实现:构建AttGAN模型的编码器/581 10.3.6代码实现:构建含有转置卷积的解码器模型/582 10.3.7代码实现:构建AttGAN模型的判别器模型部分/584 10.3.8代码实现:定义模型参数,并构建AttGAN模型/585 10.3.9代码实现:定义训练参数,搭建正反向模型/587 10.3.10代码实现:训练模型/592 10.3.11扩展实例56:为人脸添加不同的眼镜/595 10.3.12扩展:AttGAN模型的局限性/597 10.4实例57:用RNN.WGAN模型模拟生成恶意请求/597 10.4.1获取样本:通过Panabit设备获取恶意请求样本/597 10.4.2了解RNN.WGAN模型/600 10.4.3代码实现:构建RNN.WGAN模型/601 10.4.4代码实现:训练指定长度的RNN.WGAN模型/607 10.4.5代码实现:用长度依次递增的方式训练模型/612 10.4.6运行代码/613 10.4.7扩展:模型的使用及优化/614 1章模型的攻与防——看似智能的AI也有脆弱的一面/616 11.1快速导读/616 11.1.1什么是FGSM方法/616 11.1.2什么是cleverhans模块/616 11.1.3什么是黑箱攻击/617 11.1.4什么是基于雅可比矩阵的数据增强方法/618 11.1.5什么是数据中毒攻击/620 11.2实例58:用FGSM方法生成样本,并攻击PNASNet模型,让其将“狗”识别成“盘子”/621 11.2.1代码实现:创建PNASNet模型/621 11.2.2代码实现:搭建输入层并载入图片,复现PNASNet模型的预测效果/623 11.2.3代码实现:调整参数,定义图片的变化范围/624 11.2.4代码实现:用梯度下降方式生成对抗样本/625 11.2.5代码实现:用生成的样本攻击模型/626 11.2.6扩展:如何防范攻击模型的行为/627 11.2.7代码实现:将数据增强方式用在使用场景,以加固PNASNet模型,防范攻击/627 11.3实例59:击破数据增强防护,制作抗旋转对抗样本/629 11.3.1代码实现:对输入的数据进行多次旋转/629 11.3.2代码实现:生成并保存鲁棒性更好的对抗样本/630 11.3.3代码实现:在PNASNet模型中比较对抗样本的效果/631 11.4实例60:以黑箱方式攻击未知模型/633 11.4.1准备工程代码/633 11.4.2代码实现:搭建通用模型框架/634 11.4.3代码实现:搭建被攻击模型/637 11.4.4代码实现:训练被攻击模型/638 11.4.5代码实现:搭建替代模型/639 11.4.6代码实现:训练替代模型/639 11.4.7代码实现:黑箱攻击目标模型/641 11.4.8扩展:利用黑箱攻击中的对抗样本加固模型/645 第5篇实战——深度学习实际应用 2章TensorFlow模型制作——一种功能,多种身份/648 12.1快速导读/648 12.1.1详细分析检查点文件/648 12.1.2什么是模型中的冻结图/649 12.1.3什么是TFServing模块与saved_model模块/649 12.1.4用编译子图(defun)提升动态图的执行效率/649 12.1.5什么是TF_Lite模块/652 12.1.6什么是TFjs-converter模块/653 12.2实例61:在源码与检查点文件分离的情况下,对模型进行二次训练/653 12.2.1代码实现:在线性回归模型中,向检查点文件中添加指定节点/654 12.2.2代码实现:在脱离源码的情况下,用检查点文件进行二次训练/657 12.2.3扩展:更通用的二次训练方法/659 12.3实例62:导出/导入冻结图文件/661 12.3.1熟悉TensorFlow中的freeze_graph工具脚本/661 12.3.2代码实现:从线性回归模型中导出冻结图文件/662 12.3.3代码实现:导入冻结图,并用模型进行预测/664 12.4实例63:逆向分析冻结图模型/665 12.4.1使用import_to_tensorboard工具/666 12.4.2用TensorBoard工具查看模型结构/666 12.5实例64:用saved_model模块导出与导入模型文件/668 12.5.1代码实现:用saved_model模块导出模型文件/668 12.5.2代码实现:用saved_model模块导入模型文件/669 12.5.3扩展:用saved_model模块导出带有签名的模型文件/670 12.6实例65:用saved_model_cli工具查看及使用saved_model模型/672 12.6.1用show参数查看模型/672 12.6.2用run参数运行模型/673 12.6.3扩展:了解scan参数的黑名单机制/674 12.7实例66:用TF-Hub库导入、导出词嵌入模型文件/674 12.7.1代码实现:模拟生成通用词嵌入模型/674 12.7.2代码实现:用TF-Hub库导出词嵌入模型/675 12.7.3代码实现:导出TF-Hub模型/678 12.7.4代码实现:用TF-Hub库导入并使用词嵌入模型/680 3章部署TensorFlow模型——模型与项目的深度结合/681 13.1快速导读/681 13.1.1什么是gRPC服务与HTTP/RESTAPI/681 13.1.2了解TensorFlow对移动终端的支持/682 13.1.3了解树莓派上的人工智能/683 13.2实例67:用TF_Serving部署模型并进行远程使用/684 13.2.1在Linux系统中安装TF_Serving/684 13.2.2在多平台中用Docker安装TF_Serving/685 13.2.3编写代码:固定模型的签名信息/686 13.2.4在Linux中开启TF_Serving服务/688 13.2.5编写代码:用gRPC访问远程TF_Serving服务/689 13.2.6用HTTP/RESTAPI访问远程TF_Serving服务/691 13.2.7扩展:关于TF_Serving的更多例子/694 13.3实例68:在安卓手机上识别男女/694 13.3.1准备工程代码/694 13.3.2微调预训练模型/695 13.3.3搭建安卓开发环境/698 13.3.4制作lite模型文件/701 13.3.5修改分类器代码,并运行APP/702 13.4实例69:在iPhone手机上识别男女并进行活体检测/703 13.4.1搭建iOS开发环境/703 13.4.2布署工程代码并编译/704 13.4.3载入Lite模型,实现识别男女功能/706 13.4.4代码实现:调用摄像头并采集视频流/707 13.4.5代码实现:提取人脸特征/710 13.4.6活体检测算法介绍/712 13.4.7代码实现:实现活体检测算法/713 13.4.8代码实现:完成整体功能并运行程序/714 13.5实例70:在树莓派上搭建一个目标检测器/717 13.5.1安装树莓派系统/718 13.5.2在树莓派上安装TensorFlow/721 13.5.3编译并安装Protobuf/725 13.5.4安装OpenCV/726 13.5.5下载目标检测模型SSDLite/726 13.5.6代码实现:用SSDLite模型进行目标检测/727 4章商业实例——科技源于生活,用于生活/730 14.1实例71:将特征匹配技术应用在商标识别领域/730 14.1.1项目背景/730 14.1.2技术方案/730 14.1.3预处理图片——统一尺寸/731 14.1.4用自编码网络加夹角余弦实现商标识别/731 14.1.5用卷积网络加triplet-loss提升特征提取效果/731 14.1.6进一步的优化空间/732 14.2实例72:用RNN抓取蠕虫病毒/732 14.2.1项目背景/733 14.2.2判断是否恶意域名不能只靠域名/733 14.2.3如何识别恶意域名/733 14.3实例73:迎宾机器人的技术关注点——体验优先/734 14.3.1迎宾机器人的产品背景/734 14.3.2迎宾机器人的实现方案/734 14.3.3迎宾机器人的同类产品/736 14.4实例74:基于摄像头的路边停车场项目/737 14.4.1项目背景/737 14.4.2技术方案/738 14.4.3方案缺陷/738 14.4.4工程化补救方案/738 14.5实例75:智能冰箱产品——硬件成本之痛/739 14.5.1智能冰箱系列的产品背景/739 14.5.2智能冰箱的技术基础/740 14.5.3真实的非功能性需求——低成本/740 14.5.4未来的技术趋势及应对策略/741 内容推荐 本书针对TensorFlow 1.0以上版本编写,采用“实例”的形式编写,通过60个实例全面而深入地讲解“深度学习神经网络原理”和“Tensorflow使用方法”两方面。书中的实例具有很强的实用,如对图片分类、制作一个简单的聊天机器人、进行图像识别等。本书还免费提供了所有案例的源 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。