22. 人工智能的味道 - 图像风格迁移

Python是人工智能编程的首选语言,至少当作者在键盘上敲下这行话时,这是事实。作为一本Python基础入门性质的教科书,本书无法就Python在人工智能与深度学习中的应用展开深入讨论。要理解深度学习的内部细节,需要复杂的数学知识。不过作为应用层面的开发者,读者或者不需要理解深度学习复杂的数学细节,简单借助于开源的工具包和模型,也可以享受到人工智能的益处。本章通过图像风格迁移这个示例,让读者尝尝人工智能的味道。

21. 浅尝则止 - SciPy科学计算

SciPy以NumPy为基础,提供了众多数学、科学、工程计算用的模块,包括但不限于:线性代数、常微分方程求解、信号处理、图像处理、稀疏矩阵处理。

本章适合那些有较好高等数学、线性代数、概率论基础的工科学生或从业者阅读。其他读者可以跳过,不影响后续章节。为减轻“数学恐惧症”患者的恐惧,作者尽量选择相对容易的“数学”案例来进行解读。

Python使用被称为异常的特殊对象来表达执行期间发现的错误。当这些异常没有被捕获并处理时,程序将停止,并向控制台打印错误信息。这个错误信息通常是一个traceback,包含了异常的类型,以及诱发这个异常的代码位置及调用栈细节。

微实践:绘制二元函数曲面

我们将演示如何借助于ufunc的广播运算计算下述二元函数的在一个xy平面上的值并将其绘制成3D曲面。其中,x和y的取值范围均为[-2,+2]。
$$
z = xe^{-x^{2}-y^{2}}
$$
为了达到目的,我们需要一个二维的结果数组z,其元素的下标对应参数x,y的取值,其元素的值则为上述函数的函数值。这可以通过广播计算来得到。

微实践 - 一对兔兔与函数的增长

数学家列昂纳多·斐波那契研究了野外兔子的繁殖问题:一般而言,兔子出生两个月后,就有繁殖能力。假设一对兔子每个月能生出一对小兔子而且所有兔子都不死。如果现在往一片没有兔子的新大陆上放生一对新生的兔子,那么一年以后那个大陆上有多少只兔子?两年以后呢?

单元测试

据统计,由于软件缺陷(bug),美国经济每年在浪费生产力、返工和实际毁坏上损失了数十亿美元。近期最严重的案例是波音737 Max飞机的两次重大坠机事故,共造成了346人死亡。经过初步调查,该公司的专用软件难辞其咎。因此,通过软件工程方法以及测试减少软件的缺陷,十分重要。