1.2 PyTorch深度学习
PyTorch是一个Python程序库,有助于构建深度学习项目。它强调灵活性,并允许用深度学习领域惯用的Python来表示深度学习模型。它的易用性使得它在研究社区中有了早期的使用者,并且在第1次发布之后的几年里,它已经成为应用程序中使用最广泛的深度学习工具之一。
正如Python在编程方面所做的那样,PyTorch也为深度学习提供了很好的入门指南。同时,PyTorch已经被证明完全可以在实际项目和高规格的专业环境下使用。我们相信PyTorch凭借其清晰的语法、精简的API和易于调试的优点将成为入门深度学习的最佳选择。图1.1中的深度学习机的核心是一个相当复杂的数学函数,它将输入映射到输出。为了便于表达这个函数,PyTorch提供了一个核心数据结构——张量,它是一个多维数组,与NumPy数组有许多相似之处。在这个基础上,PyTorch提供了在专用硬件上执行加速数学操作的特性,这使得神经网络结构设计以及在单机或并行计算资源上训练它们变得很方便。
我们希望本书可以作为软件工程师、数据科学家以及积极上进的学生学习深度学习的起始点,通过本书,他们能够熟练地使用PyTorch来构建深度学习项目。我们希望本书尽可能容易理解和实用,希望你能够理解本书中的概念并将它们应用到其他领域。为此,我们使用一种亲身实践的方法,希望你随时准备好计算机,这样你就可以对书中的示例有更深入的理解。读完本书后,我们希望你能够获得数据源,并能根据优秀的官方文档来构建一个深度学习项目。
虽然我们重点介绍的是应用PyTorch构建深度学习系统实践方面的内容,但我们相信,为基础深度学习工具提供一个易懂的导读同样是促进获得新技能的一种方式。这是使用应用知识武装新一代科学家、工程师和来自广泛学科的实践者迈出的一步,这些知识将成为未来几十年许多软件项目的关键。
为了充分利用本书,你需要2件东西。
- Python编程经验。我们不打算在这一点上花篇幅介绍。你需要了解Python数据类型、类、浮点数等。
- 潜心钻研、亲自动手实践的意愿。我们将从基础开始构建我们的工作知识。如果你跟着我们一起动手学习,学起来会容易很多。
本书由3个部分组成。第1部分介绍基础知识,详细介绍通过PyTorch提供的工具将图1.1所示的深度学习的过程转化为代码实现。第2部分将带你完成一个完整的涉及医学影像的端到端项目,CT扫描结果中查找并对肿瘤进行分类,以第1部分介绍的概念为基础,并添加更高级的主题。本书结束部分,即第3部分,简短介绍PyTorch提供的将深度学习模型部署到生产环境的相关内容。
深度学习是一个巨大的空间,本书只覆盖该空间的一小部分。具体来说,包括一些使用PyTorch进行较小范围的图像分类和分割的项目,通过一些示例处理二维和三维的图像数据集。
本书的重点在于PyTorch实践,目的是覆盖足够的范围,让你能够通过深度学习来解决现实世界中机器学习的问题,如在视觉领域应用深度学习领域中现有的模型或探索研究文献中提出的新模型。与深度学习相关的最新出版物,大部分可以在arXiv官网的公共预印库中找到[2]。