Python神经网络入门与实战 封面

Python神经网络入门与实战

评分 3.2
字数
353字
章节数
264
ISBN
9787301316290

标签

内容简介

本书从神经网络的基础知识讲起,逐步深入到Python进阶实战,通过对各种实用的第三方库进行详细讲解与实战运用,让读者不但能够更加深入地了解神经网络,而且能够简单高效地搭建自己的神经网络,即使没有背景知识也能轻松入门神经网络。本书分为11章,涵盖的主要内容有神经网络概述,神经网络基础知识,计算机程序的特点,神经网络优化算法,搭建Python环境,Python基础知识,深度学习框架PyTorch基础知识,NumPy简介与使用,OpenCV简介与使用,OS遍历文件夹,Python中Matplotlib可视化绘图,Lenet-5、AlexNet、VGG16网络模型,回归问题和分类问题,猫狗识别程序开发,验证码识别程序开发,过拟合问题与解决方法,梯度消失与爆炸,加速神经网络训练的方法,人工智能的未来发展趋势等。本书内容通俗易懂,案例丰富,实用性强,特别适合神经网络的零基础入门读者阅读,也适合Python 程序员、PyTorch爱好者等阅读。

编辑推荐

本书面向零基础读者,从神经网络的基本概念讲起,逐步过渡到Python环境搭建、PyTorch框架、NumPy与OpenCV使用、Matplotlib可视化,再进入Lenet-5、AlexNet、VGG16等网络模型和回归、分类问题,最终落到猫狗识别与验证码识别两个完整程序案例。内容编排强调“先懂原理再动手”,对过拟合、梯度消失与爆炸、加速训练等常见问题也给出对应讨论,使读者在搭建网络时不只照抄代码,还能理解调参方向。适合作为神经网络入门的系统性读本,尤其适合边读边在电脑上复现案例的学习方式;若已有较深深度学习经验,书中基础部分可能显得冗长,可优先翻阅实战章节。

适合谁读

适合

  • 没有神经网络背景、希望从零系统入门的编程初学者
  • 已会Python但想借PyTorch搭建第一个神经网络的学习者
  • 需要猫狗识别、验证码识别等完整案例作课堂或自学练习的读者

不适合

  • 已有多年深度学习经验、寻求前沿模型与研究的资深从业者
  • 完全不会编程且不打算动手写代码的纯理论读者

阅读建议

  1. 按章节顺序阅读,每学完一个第三方库就动手敲一遍示例代码。
  2. 先跑通猫狗识别案例,再回头理解Lenet-5、AlexNet、VGG16的结构差异。
  3. 遇到过拟合或梯度问题时,对照书中相应小节调整代码并观察结果变化。

出版社简介

北京大学出版社 中国 · 成立于 1979 年

北京大学出版社是一家综合性大学出版社,其出版方向涵盖古典文学、科学科普、社会文化、世界史、西方哲学与文化等领域。库内收录图书6031种,代表性图书包括《红楼梦》《狭义与广义相对论浅说(第15版)(附爱因斯坦关于统一场论及其他经典论文)》《几何原本》《圆锥曲线论》《东晋门阀政治》《神话哲学(上卷)》《神话哲学(下卷)》《海陆的起源》等。代表作者有曹雪芹、周汝昌、爱因斯坦、欧几里得、阿波罗尼奥斯、田余庆、谢林、先刚等。该社在古典文学与西方哲学原典译介方面形成特色,兼及科学经典与社会文化研究。因公开资料有限,此处仅依据库内图书呈现其出版方向,不作额外延伸。

目录

  1. 版权信息
  2. 内容简介
  3. 前言
  4. 第1章 神经网络概述
  5. 1.1 神经网络简介
  6. 1.1.1 神经网络的定义
  7. 1.1.2 神经网络可解决的问题
  8. 1.2 神经网络的灵感来源
  9. 1.2.1 对人类认知过程的传统认知
  10. 1.2.2 对人类认知过程的现代认知
  11. 1.2.3 神经元连接的灵感
  12. 1.3 为什么要学习神经网络
  13. 1.3.1 神经网络的发展
  14. 1.3.2 学习神经网络有什么用
  15. 1.4 怎样学习神经网络
  16. 1.4.1 选择一门编程语言
  17. 1.4.2 对算法的理解
  18. 1.4.3 写博客
  19. 1.5 小结
  20. 第2章 神经网络基础知识
  21. 2.1 感知器模型
  22. 2.1.1 神经元细胞的本质
  23. 2.1.2 感知器模型的构建
  24. 2.2 训练感知器
  25. 2.2.1 计算误差
  26. 2.2.2 误差反向传播
  27. 2.2.3 训练示例
  28. 2.3 激活函数
  29. 2.3.1 激活函数的定义
  30. 2.3.2 Sigmoid函数
  31. 2.3.3 Tanh函数
  32. 2.3.4 ReLU函数
  33. 2.4 损失函数
  34. 2.4.1 损失函数的定义及作用
  35. 2.4.2 绝对值损失函数
  36. 2.4.3 均方差损失函数
  37. 2.4.4 交叉熵损失函数
  38. 2.5 单层神经网络
  39. 2.5.1 单层神经网络的结构
  40. 2.5.2 单层神经网络的参数
  41. 2.5.3 单层神经网络的前向传播过程
  42. 2.6 训练单层神经网络
  43. 2.6.1 梯度下降算法
  44. 2.6.2 反向传播算法
  45. 2.6.3 理解反向传播
  46. 2.7 多层神经网络
  47. 2.7.1 多层神经网络的结构
  48. 2.7.2 参数向量化
  49. 2.8 卷积神经网络
  50. 2.8.1 卷积神经网络简介
  51. 2.8.2 卷积核
  52. 2.8.3 卷积操作
  53. 2.8.4 池化操作
  54. 2.8.5 卷积层
  55. 2.8.6 池化层
  56. 2.8.7 全连接层
  57. 2.9 小结
  58. 第3章 实战前的预备知识
  59. 3.1 计算机程序
  60. 3.1.1 计算机程序简介
  61. 3.1.2 计算机程序的执行过程
  62. 3.1.3 计算机程序的开发流程
  63. 3.1.4 计算机程序的特点
  64. 3.2 加速训练
  65. 3.2.1 CPU与GPU
  66. 3.2.2 归一化
  67. 3.2.3 其他学习算法
  68. 3.2.4 Mini-Batch
  69. 3.3 构建样本集
  70. 3.3.1 Tensor类型
  71. 3.3.2 训练集
  72. 3.3.3 测试集
  73. 3.3.4 交叉验证集
  74. 3.4 小结
  75. 第4章 Python入门与实战
  76. 4.1 Python简介
  77. 4.1.1 什么是Python
  78. 4.1.2 Python的特点
  79. 4.1.3 为什么要用Python搭建神经网络
  80. 4.2 搭建Python环境
  81. 4.2.1 安装Python 3.7(Anaconda)
  82. 4.2.2 安装CUDA10.0
  83. 4.2.3 安装PyCharm
  84. 4.2.4 PyCharm新建项目
  85. 4.2.5 PyCharm的一些基本设置
  86. 4.2.6 PyCharm运行程序
  87. 4.3 Python基础
  88. 4.3.1 输入语句与输出语句
  89. 4.3.2 变量的作用与定义
  90. 4.3.3 变量的命名规则和习惯
  91. 4.3.4 运算符
  92. 4.3.5 数据类型
  93. 4.3.6 if语
  94. 4.3.7 循环语句
  95. 4.3.8 函数
  96. 4.3.9 类
  97. 4.3.10 列表和元组
  98. 4.3.11 引入模块
  99. 4.3.12 注释
  100. 4.4 编写第一个感知器程序
  101. 4.4.1 需求分析
  102. 4.4.2 生程序
  103. 4.4.3 感知器前向传播程序
  104. 4.4.4 误差计算程序
  105. 4.4.5 运行结果
  106. 4.5 小结
  107. 第5章 深度学习框架PyTorch入门与实战
  108. 5.1 PyTorch简介
  109. 5.1.1 什么是PyTorch
  110. 5.1.2 PyTorch的特点
  111. 5.1.3 为什么要选择PyTorch搭建神经网络
  112. 5.2 安装PyTorch框架
  113. 5.2.1 conda命令
  114. 5.2.2 选择PyTorch版本进行安装
  115. 5.3 PyTorch基础
  116. 5.3.1 构建输入输出
  117. 5.3.2 构建网络结构
  118. 5.3.3 定义优化器与损失函数
  119. 5.3.4 保存和加载网络
  120. 5.4小实战:用PyTorch搭建一个神经网络以学习异或运算
  121. 5.4.1 需求分析
  122. 5.4.2 训练程序
  123. 5.4.3 测试程序
  124. 5.5 小结
  125. 第6章 Python搭建神经网络进阶
  126. 6.1 NumPy简介
  127. 6.1.1 NumPy的基本功能
  128. 6.1.2 NumPy的数据类型
  129. 6.2 NumPy的使用
  130. 6.2.1 安装NumPy
  131. 6.2.2 创建数组
  132. 6.2.3 存储和读取数组
  133. 6.2.4 素引和切片
  134. 6.2.5 重塑数组
  135. 6.2.6 数组的运算
  136. 6.3 OpenCV简介
  137. 6.3.1 OpenCV概述
  138. 6.3.2 OpenCV的基本功能
  139. 6.4 OpenCV的使用
  140. 6.4.1 安装OpenCV
  141. 6.4.2 图像读取与显示
  142. 6.4.3 图像缩放
  143. 6.4.4 色彩空间转换
  144. 6.4.5 直方图均衡化
  145. 6.4.6 图像保存
  146. 6.5 文件夹中文件的遍历
  147. 6.5.1 OS模块简介
  148. 6.5.2 path模块
  149. 6.5.3 删除文件
  150. 6.5.4 创建文件夹
  151. 6.5.5 文件遍历
  152. 6.6 构建和读取数据集
  153. 6.6.1 构建数据集
  154. 6.6.2 读取数据集
  155. 6.7 PyTorch中卷积神经网络有关的接口
  156. 6.7.1 卷积层接口
  157. 6.7.2 反卷积层接口
  158. 6.8 小结
  159. 第7章 实战1:回归问题和分类问题
  160. 7.1 Python中绘图方法简介
  161. 7.1.1 Matplotlib简介
  162. 7.1.2 安装Matplotlib
  163. 7.1.3 散点图绘制
  164. 7.1.4 绘图显示的小设置
  165. 7.1.5 曲线绘制
  166. 7.1.6 设置坐标轴
  167. 7.1.7 动态绘图
  168. 7.2 回归问题
  169. 7.3 用Python搭建一个解决回归问题的神经网络
  170. 7.3.1 准备工作
  171. 7.3.2 构建网络
  172. 7.3.3 训练网络
  173. 7.3.4 完整程序
  174. 7.4 分类问题
  175. 7.5 用Python搭建一个解决分类问题的神经网络
  176. 7.5.1 准备工作
  177. 7.5.2 构建网络
  178. 7.5.3 训练网络
  179. 7.5.4 可视化
  180. 7.5.5 完整程序
  181. 7.6 小结
  182. 第8章 实战2:猫狗识别问题
  183. 8.1 实战目标
  184. 8.1.1 目标分析
  185. 8.1.2 样本集
  186. 8.2 实现思路
  187. 8.2.1 构建样本集
  188. 8.2.2 测试样本集
  189. 8.2.3 构建网络
  190. 8.2.4 训练网络
  191. 8.2.5 测试网络
  192. 8.3 完整程序及运行结果
  193. 8.3.1 构建样本集程序
  194. 8.3.2 测试样本集程序
  195. 8.3.3 构建网络程序
  196. 8.3.4 训练网络程序
  197. 8.3.5 可视化训练过程
  198. 8.3.6 测试网络程序
  199. 8.3.7 模拟实际运用
  200. 8.4 对结果的思考
  201. 8.4.1 训练集和测试集准确率的对比
  202. 8.4.2 准确率低的原因
  203. 8.4.3 训练过程的启示
  204. 8.5 小结
  205. 第9章 一些经典的网络
  206. 9.1 LeNet-5网络模型
  207. 9.1.1 LeNet-5网络简介
  208. 9.1.2 LeNet-5网络结构
  209. 9.1.3 三维卷积
  210. 9.1.4 多维卷积
  211. 9.1.5 LeNet-5代码实现
  212. 9.2 AlexNet网络模型
  213. 9.2.1 AlexNet网络简介
  214. 9.2.2 AlexNet网络结构
  215. 9.2.3 Same卷积
  216. 9.2.4 Softmax分类器
  217. 9.2.5 AlexNet代码实现
  218. 9.3 VGG16网络模型
  219. 9.3.1 VGG16网络简介
  220. 9.3.2 VGG16网络结构
  221. 9.4 小结
  222. 第10章 实战3:验证码识别问题
  223. 10.1 实战目标
  224. 10.1.1 目标分析
  225. 10.1.2 生成样本集
  226. 10.2 实现思路
  227. 10.2.1 构建样本集
  228. 10.2.2 构建网络
  229. 10.2.3 训练网络
  230. 10.2.4 测试网络
  231. 10.3 完整程序及运行结果
  232. 10.3.1 验证码分割程序
  233. 10.3.2 构建训练集程序
  234. 10.3.3 构建网络程序
  235. 10.3.4 训练网络程序
  236. 10.3.5 测试网络程序
  237. 10.3.6 模拟实际运用
  238. 10.4 对结果的思考
  239. 10.4.1 训练集和测试集准确率的对比
  240. 10.4.2 识别错误的原因
  241. 10.5 小结
  242. 第11章 优化网络
  243. 11.1 神经网络现存的几个问题
  244. 11.1.1 无法真正模拟人脑
  245. 11.1.2 大样本训练缓慢
  246. 11.1.3 深度网络训练困难
  247. 11.1.4 梯度消失和爆炸
  248. 11.1.5 白盒问题
  249. 11.2 过拟合问题
  250. 11.2.1 什么是过拟合
  251. 11.2.2 解决过拟合问题的几种方法
  252. 11.2.3 正则化
  253. 11.3 怎样选择每一层的节点数目
  254. 11.3.1 输入层和输出层的节点数目
  255. 11.3.2 隐含层的节点数目
  256. 11.4 如何加速训练
  257. 11.4.1 采用其他优化算法
  258. 11.4.2 采用GPU训练
  259. 11.4.3 设置合适的学习率
  260. 11.4.4 在合适的时间停止训练
  261. 11.人工智能的未来发展趋势
  262. 11.5.1 人工智能的发展现状
  263. 11.5.2 人工智能的发展趋势
  264. 11.6 小结

常见问题

没有任何神经网络基础能学吗?
可以。本书从神经网络概述和基础知识讲起,并包含Python环境搭建与Python基础知识,定位就是零基础入门。但建议读者至少具备基本计算机操作能力,并愿意动手运行代码,否则实战章节容易流于表面。
书中的案例需要什么运行环境?
书中涉及Python环境搭建、PyTorch深度学习框架,以及NumPy、OpenCV、Matplotlib等第三方库。读者按书中步骤配置环境即可,具体版本与安装细节以书中讲解为准。
学完这本书能达到什么程度?
读者可以理解神经网络的基本原理与优化方法,学会用PyTorch搭建和训练Lenet-5、AlexNet、VGG16等模型,并完成猫狗识别、验证码识别等实战程序,同时了解过拟合、梯度消失等常见问题的处理思路。

读者评论

查询本书

本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。

作者简介

王凯 作者

王凯是一位创作题材跨度很大的中文作者,公开资料十分有限,其国籍、生卒年与教育背景目前均无从确认。库内收录其作品13种,从这些作品可以看出,他的写作兴趣横跨多个领域:既有《乳房故事集》这样关注身体与女性经验的文学创作,也有《全金属青春》等青春文学,以及《口水民国:民国名人的笔墨官司》一类钩沉历史人物轶事的通俗读物;在专业写作方面,他还涉足军事战略、学校教育课程设计、道路与桥梁工程BIM建模等实务性较强的主题,并参与编写鼻咽癌患者护理与儿童青少年近视防控的科普读物。整体而言,其作品兼顾文学表达与知识普及,分类涵盖经典作品、军事、医学、教育、考试与青春文学等,显示出作者旺盛的写作精力与多元的取材面向。

同一作者

同类高分