6. 深度学习动手实践¶
除了海量的数据集和强大的硬件,优秀的软件工具在深度学习的快速发展中也发挥了不可或缺的作用。从2007年发布的开创性Theano库开始,灵活的开源工具使研究人员能够快速构建模型原型,在复用标准组件时避免重复工作,同时仍然保持进行底层修改的能力。随着时间的推移,深度学习的库已经发展到提供越来越粗糙的抽象。就像半导体设计师从指定晶体管到逻辑电路再到编写代码一样,神经网络研究人员已经从考虑单个“人造神经元”的行为,到用整个层的概念来构思网络,而现在他们通常在设计架构时会考虑到更粗糙的*块*。
到目前为止,我们已经介绍了一些基本的机器学习概念,并逐步构建了功能齐全的深度学习模型。在上一章中,我们从头开始实现了多层感知机的每个组件,甚至展示了如何利用高级API轻松地实现相同的模型。为了让你能快速上手,我们*调用*了这些库,但跳过了关于*它们如何工作*的更高级的细节。在本章中,我们将揭开帷幕,深入探讨深度学习计算的关键组件,即模型构建、参数访问和初始化、设计自定义层和块、读写模型到磁盘,以及利用GPU实现显著加速。这些见解将使你从*最终用户*转变为*高级用户*,让你掌握所需的工具,既能享受成熟深度学习库带来的好处,又能保持实现更复杂模型的灵活性,包括那些你自己发明的模型!虽然本章不介绍任何新的模型或数据集,但后面关于高级建模的章节将严重依赖这些技术。