推荐序
在IT技术飞速发展的今天,云计算、人工智能、大数据和云原生应用等新兴技术的发展为我们的生活带来了翻天覆地的变化,也对软件开发者提出了更高的要求,特别是在人工智能开发领域,应运而生的新概念让人目不暇接。
作为一个.NET开发者,在开发机器学习项目的过程中会遇到很多困难。主要原因之一是我们认为C#不是适合该工作的编程语言,Python和R语言才是,而C#语言更适合用于机器学习的前期数据分析阶段。
不知道各位有没有思考一下为什么微软公司要在.NET平台上引入机器学习,以及我们为什么要探索机器学习。
一个原因是,机器学习技术正在跨越鸿沟。事实上,这个鸿沟是非常难以跨越的,之所以那么多的高科技产品只在小众范围内流传,而没有被主流市场接受,是因为相关技术没有跨越这个鸿沟。最早的机器学习算法可以追溯到20世纪初,到今天为止,已经过去了100多年。从1980年机器学习技术成为一个独立的方向开始算起,到现在已经过去了40多年。在这100多年中,经过一代又一代人的努力,近几年机器学习技术终于跨越了鸿沟。跨越鸿沟意味着机器学习技术正在从仅有少数人掌握的时代过渡到大多数人掌握的时代。微软公司的CEO萨提亚·纳德拉在他写的《刷新:重新发现商业与未来》一书中提出“民主化”的人工智能,ML.NET正是要完成这项使命的载体之一。如何实现人工智能“民主化”,让它惠及每个人?如何让每个人打造自己的人工智能?在医疗、教育和零售机构中,打造一个相适应的人工智能是至关重要的。当我们谈人工智能的时候,不能空谈任何一个人工智能公司,而要“民主化”人工智能,让人工智能真正落地应用到个人。
我们应该探索机器学习的另一个原因是,作为人类,我们会产生大量数据,却无法处理全部数据;从技术上讲,我们面临无法从数据中提取信息的问题。此时,机器学习模型可以帮助我们处理海量的数据。
在.NET生态上,人工智能领域有一个开源团队SciSharp Stack,他们为TensorFlow提供了.NET Standard Binding,旨在用C#实现完整的TensorFlow API,允许.NET开发人员使用跨平台的.NET Standard框架开发、训练和部署机器学习模型。他们打造了一个完全属于.NET开发人员自己的机器学习平台——TensorFlow.NET,对于C#开发人员来说,这是一个零学习成本的机器学习平台,该平台集成了大量的API和底层封装,力图使TensorFlow的Python代码风格和编程习惯无缝移植到.NET平台上。
虽然有大量的TensorFlow文档可以参考,但是对于初学者来说,其中涉及的知识难免晦涩,特别是对于.NET的开发人员来说,缺少便于上手的指南及来自生产实践的案例总结。因此,一本系统地介绍TensorFlow.NET的图书是很有必要的,这样可以让更多的.NET开发人员把人工智能应用于生产实践之中。
这是本书的目的和价值。本书采用.NET 5.0进行实践,可能在本书发布的时候.NET 6.0已经发布,代码从.NET 5.0升级到.NET 6.0是很平滑的,请务必一边实际运行代码,一边阅读本书。
微软MVP、腾讯云TVP、华为云MVP张善友