用PyTorch进行深度学习是采用了一种从简单到高级的编码方法
2022年2月15日整理发布:从深度学习技术的逐步手动编码演练开始,以解释损失函数、权重和偏差等概念。然后他们一一介绍 PyTorch 的函数和类来替代手工编码的深度学习技术。
书中的代码示例也有很好的注释,对各个部分的功能进行了重点讲解。对于那些只想浏览代码而不逐行跟踪的人来说,这是一个非常有用的补充。
也非常受欢迎的是使用良好的编码技术。虽然许多 Python 机器学习书籍中的代码示例只是试图展示机器学习技术,但使用 PyTorch 进行深度学习的作者非常注意遵守推荐的 Python 编码实践。本书的示例充分利用了方便的 Python 特性,例如列表推导、参数解包、“with”结构、命名元组和 functools 注释。本书还利用 Python 的面向对象编程特性来扩展 PyTorch 的功能。
这意味着,虽然使用 PyTorch 进行深度学习提供了比许多其他书籍更简洁的代码,但它也需要读者有扎实的 Python 基础才能完全理解示例。然而,我不认为这是一个缺点,因为如果你要编写 Python 深度学习应用程序,那么无论如何你都必须是一个优秀的 Python 编码器。
在本书的第二部分中,这一现实变得更加突出,您将在其中创建一个成熟的深度学习应用程序。
深度学习癌症检测应用
使用PyTorch进行深度学习与其他 Python 深度学习书籍的区别在于它的第二部分,作者深入研究了医学成像分析,这是一个在机器学习中非常流行的应用程序。
目标是开发一种人工智能应用程序,可以分析胸部 CT 扫描、定位结节并帮助确定哪些可能是癌变的。本书深入探讨了用于实际应用的深度学习开发流程。出于必要,您还必须了解大量有关 CT 扫描、CT 扫描数据、肺结节和肺癌的知识。幸运的是,其中一位作者是一名生物医学工程师,在研究和开发医学成像应用方面有着悠久的历史。
许多文章试图将深度学习构建为一个端到端的、神奇的黑匣子,你可以用数据提供它,让它理解这个过程并为你提供所需的答案。使用 PyTorch 进行深度学习在表明大多数问题无法端到端解决方面做得非常好,您通常需要将几个深度学习模型和其他组件拼凑在一起。使用 PyTorch在深度学习中开发的肺癌检测应用程序需要依次组合分类和分割模型。
本书还介绍了您在开发实际深度学习应用程序时面临的一些科学和技术挑战。例如,您将深入了解“类别不平衡”问题,该问题经常发生在医学成像应用程序中,因为大多数扫描是良性的,很少代表恶性模式。
本书展示的另一个问题(我在其他地方很少讨论)是训练数据的存储和缓存。当您处理庞大的数据集时,您必须制定有效地加载和存储数据的策略,否则数据检索将成为训练深度学习模型时的瓶颈,并且您将无法利用全部功能您的 GPU。
逐渐地,使用 PyTorch 进行深度学习构建了癌症检测应用程序的不同组件,并将它们组合成一个复杂的面向对象的 Python 应用程序。在此过程中,作者继续教授新概念和技术,例如混淆矩阵、性能指标(召回率、精度和 F1 分数)、数据增强、迁移学习等。您还可以使用 TensorBoard 等评估工具(尽管 TensorBoard 是为 TensorFlow 创建的,但作者表明您也可以使用它来跟踪 PyTorch 应用程序的进度)。
现实世界的设置也为一些宝贵的深度学习课程奠定了基础,例如需要一次测试一个修改——当您同时对深度学习模型进行多项修改时,您将无法得出一致和可靠的结论。
在第二部分即将结束时,您将把深度学习应用程序的所有部分放在一起,并学习在网络上为它们提供服务。