
序
在我们启动 TensorFlow.js 项目之初,它还叫作 deeplearn.js,那时机器学习领域绝大部分项目采用的是 Python 语言。作为谷歌大脑团队中的 JavaScript 开发者和机器学习领域的实践者,我们很快意识到,如果将这两个领域结合起来,必将大有可为。如今,随着 TensorFlow.js 在构建和部署机器学习模型中的应用,众多来自广大 JavaScript 社区的开发者体验到了它的优势,同时它也让很多新型的终端侧(on-device)计算成为可能。
没有善清、斯坦利和埃里克的努力,就不会有 TensorFlow.js 今天的盛况。他们对 Python 版 TensorFlow 的贡献极大,包括 TensorFlow 调试器、即时执行模式(eager execution)以及用于构建与测试的基础设施,这些赋予了他们将 Python 和 JavaScript 两个领域相结合的独特契机。在开发初期,他们就意识到必须建立一个库,这个库要基于 deeplearn.js,并且能够提供高阶组件来开发机器学习模型。出于这种考虑,善清、斯坦利、埃里克以及其他一些同事一同构建了 TensorFlow.js Layers。这实现了从 Keras 模型到 JavaScript 的转换,并极大地丰富了 TensorFlow.js 生态中可用的模型。在 TensorFlow.js Layers 准备就绪的那一刻,我们向全世界推出了 TensorFlow.js。
为了弄清软件开发者的动机、困惑与诉求,Carrie Cai 和 Philip Guo 在 TensorFlow.js 官网上发起了一项调查,这本书是对这项调查结论的直接说明:“通过分析发现,开发者对机器学习框架的诉求不只是获得 API 使用方面的帮助,他们的诉求更为根本,即在理解和应用机器学习背后的核心概念方面获得指导。”
这本书融合了深度学习理论和用 JavaScript 编写的 TensorFlow.js 现实案例。对于没有机器学习经验或专业数学背景的 JavaScript 开发者,以及想将自己的工作成果延伸到 JavaScript 生态的机器学习从业者,这本书都是宝贵的学习资源。弗朗索瓦·肖莱享有“Keras 之父”的美誉,由他所著的《Python 深度学习》1是应用机器学习领域最热门的文献之一。这本书在该书的基础上加以扩充,非常好地诠释了 JavaScript 所拥有的独特优势:互动性、可移植性,以及终端侧可计算性。它涵盖了机器学习的核心概念,并且涉及当今最前沿的机器学习话题,比如文本翻译、生成式模型、强化学习,甚至对如何在现实应用程序中部署机器学习模型提供了切实可行的建议,这些建议都来自拥有丰富机器学习实际部署经验的从业者。书中的例子都有可互动的演示程序,这恰恰展现了 JavaScript 生态的独特优势。书中所有代码都是开源的,你可以与之互动,并通过 GitHub 平台复制源代码。
1此书已由人民邮电出版社出版,详见图灵社区本书主页。——编者注
这本书使用 JavaScript 作为主要语言,可以看作 JavaScript 机器学习领域的必读之作。身处机器学习和 JavaScript 的前沿,我们希望这本书所介绍的概念能为你所用,并祝你有个硕果累累且令人兴奋的旅程。
——Nikhil Thorat 和 Daniel Smilkov
deeplearn.js 发明者和 TensorFlow.js 技术负责人