第1章
TensorFlow.NET介绍
1.1 TensorFlow.NET特性
TensorFlow.NET(TF.NET)是SciSharp Stack开源社区团队的贡献,它为TensorFlow提供了.NET Standard Binding,旨在用C#实现完整的TensorFlow API,允许.NET开发人员使用跨平台的.NET Standard框架开发、训练和部署机器学习模型。TensorFlow.NET的使命是打造一个完全属于.NET开发人员自己的机器学习平台。对于C#开发人员来说,TensorFlow.NET是一个零学习成本的机器学习平台,该平台集成了大量API和底层封装,力图使TensorFlow的Python代码风格和编程习惯无缝移植到.NET平台。Python代码风格和TensorFlow.NET代码风格如图1-1所示。
图1-1 Python代码风格(左)和TensorFlow.NET代码风格(右)
1.2 TensorFlow.NET开源库结构
SciSharp Stack的机器学习工具库和微软官方的库最大的区别,是SciSharp Stack中所有库的语法都最大限度地按照Python生态的习惯实现。有了SciSharp Stack,相当于有了Typed-Python(强类型Python),这样做的目的是让.NET开发者花最小的成本去学习并运用机器学习知识。SciSharp Stack目前包含几个流行项目:BotSharp(AI机器人平台框架)、NumSharp(数值计算库)、TensorFlow.NET(深度学习库)、Pandas.NET(数据处理库)、SharpCV(图形图像处理库),可以完全脱离Python环境使用,目前已经被微软ML.NET官方的底层算法集成,并被谷歌写入TensorFlow官网教程推荐给全球开发者使用。TensorFlow.NET深受广大.NET深度学习开发者喜爱,截至2020年12月,GitHub上的SciSharp/TensorFlow.NET项目Star超过2000个,NuGet上的总下载量已突破100万次。
1.SciSharp产品结构
图1-2所示为SciSharp产品结构,可以看到其涵盖了大部分的机器学习领域,包括底层机器学习工具、图形图像处理工具、自然语言语义和高层应用API等。
图1-2 SciSharp产品结构
2.微软ML.NET底层集成算法
微软自动机器学习云端平台ML.NET底层集成了TensorFlow.NET,微软ML.NET结构如图1-3所示。
图1-3 微软ML.NET结构
3.谷歌官方推荐.NET开发者使用
谷歌在其TensorFlow官网的API文档教程中推荐C#开发者使用TensorFlow.NET框架,如图1-4所示。
图1-4 谷歌TensorFlow官网API文档教程中推荐C#开发者使用TensorFlow.NET框架
4.微软F#官方主推的大数据框架
作为最受.NET开发者欢迎的函数式语言,同时是TensorFlow.NET官方语言平台之一,F#在其官网中主推TensorFlow.NET作为其大数据框架,图1-5所示为F#官网对SciSharp Stack开源生态的说明。
图1-5 F#官网对SciSharp Stack开源生态的说明
图1-6所示为F#官网对SciSharp Stack各核心引用库的说明。
图1-6 F#官网对SciSharp Stack各核心引用库的说明