ITPub博客

首页 > 人工智能 > 机器学习 > C#也能做机器学习,这篇市场还是一片“处女地”?

C#也能做机器学习,这篇市场还是一片“处女地”?

机器学习 作者:AIBigbull2050 时间:2020-04-03 16:51:32 0 删除 编辑
2020-04-02 17:21:52

.NET 框架是由微软开发,致力于敏捷软件开发、快速应用开发、具平台无关性和网络透明化的软件框架,目前全球有 620 万开发者在使用 .NET 开发程序。然而,开发者在学习、开发和应用 AI 时,会发现市面上少有基于 .NET 的 AI 开发类库、人工智能应用技术平台和商业支持服务。在这样的背景下,SciSharp AI 开源社区应运而生,它打造一个基于 .NET 的机器学习生态,推出并开源了多个颇受欢迎的基于 .NET 的机器学习项目和工具,比如 TensorFlow.NET 就被谷歌列入 TensorFlow 官网,推荐给全球开发者。

C#也能做机器学习,这篇市场还是一片“处女地”?|文末福利

SciSharp 是怎样的一个社区?它是如何构建一个基于 .NET 的机器学习生态?它在做的事情对开发者来说有何意义?本次,AI 科技大本营与 SciSharp 核心团队成员,包括 SciSharp 社区产品运营负责人,原 “微信”技术专利发明人George Zhao、 TensorFlow.NET 发起人和主要贡献者Eric Chen、NumSharp 主要贡献者 Eli Belash、Torch.NET与Numpy.NET的主要贡献者Meinrad Recheis和 ICSharpCore主要贡献者Kerry Jiang聊了聊,更加深入地了解这个 AI 社区及其产品。



SciSharp为开发者做什么?

SciSharp 是一个非盈利人工智能开源社区,目前核心开发者有 5 人,他们分别来自以色列、奥地利、澳大利亚、美国和中国,其他 35 名贡献者则来自德国、印度等 15 个国家和地区。目前,整个社区主要是靠成员各自的兴趣驱动,管理也是由团队人员自发共同承担,是一个完全透明和自治的开源技术社区。


众所周知,C# 和 JAVA 是目前企业系统里最流行的两大编程语言,现在,Java 机器学习生态里已经有不少社区和团队在做相关产品和服务,如斯坦福的 CoreNLP、DL4J 的机器学习库等,并且做得都不错。唯独在 .NET 领域,优秀的产品非常缺乏,而且,虽然有 Accord.NET、Deedle、ML.NET 和其它一些零散的库可供开发者使用,但是它们存在着明显的缺陷,造成目前的开源库无法持续发展和创新,陷入僵局。在深度学习领域,更是 Python “独霸天下”的局面,让人以为做机器学习,就必须用 Python,做大数据就必须用 Scala或Java。这让很多 .NET 开发者感到很不便,因此,SciSharp 就开始试着手建立一个基于.NET(以 C# 开发语言为主)的机器学习生态社区。


NumSharp 的主要贡献者,来自以色列的工程师Eli Belash 回顾了他刚开始从事机器学习和人工智能开发时的感受:“我了解到 .NET 多年来缺乏可以与 Python 相匹敌的语言功能。微软的 ML.NET 仍处于早期阶段,微软的 CNTK(图形计算库)刚刚中断。那时,你无法用 C#语言编写 ML(机器学习)算法,而用其他语言,如 Python 或 R 做这些事非常容易。因此,我们缺乏基于.NET 的可靠的解决方案来编写机器学习算法。当机器学习成为趋势时,C# 目前落后于 Python 和 Java。”

在这种背景下,SciSharp 社区成立了,目的主要是为了让 .NET 开发者在当前火热的 AI 热潮中能够使用最新的 AI 技术,而不用花很长的时间学习和使用 Python 机器学习生态里的工具,降低 .NET 开发者入门机器学习的门槛,让他们能快速把 AI 能力无缝融入到现有的生产系统里。


打造基于.NET的机器学习生态


SciSharp 的核心理念是:打造一个基于 .NET 的机器学习生态,提供一个和 Python 生态体验一致的工具库,让模型迁移更容易、学习曲线最低。为了达到这个目的,SciSharp 从最基本的张量计算库 NumSharp 开始构建,到 TensorFlow Binding,再到吸纳其它深度学习库 SiaNet, 做 ArrayFire.NET,最后到开发ICSharpCore以支持Jupyter Notebook调试。团队的心愿一致,本着以精卫填海的精神,尽可能把 .NET 机器学习生态进一步完善。


NumSharp 的主要贡献者Eli Belash 表示,目前,Python 是 ML 开发和研究的主要语言。在阅读机器学习相关的论文时,你会发现作者很可能会使用 Tensorflow、Pytorch 和/或Numpy 等库并用 Python 语言编程来实现。在这样的情况下,重新造轮子可能并不是聪明的做法。如果现在流行的 Python 库运行良好,我们没理由去思考别的方法。


这就是为什么 SciSharp 决定迁移 ML 最流行的 Python 库:

Numpy 的.NET版NumSharp

TensorFlow 的.NET 移植版TensorFlow.NET

与Pandas 对应的Pandas.NET

上面提到的 3 个库提供了从头开始编写 ML 算法的完整解决方案,SciSharp 的重点之一便是能够兼容用 Python 编写类库的所有机器学习算法,并尽可能无缝地在 5 分钟内将其迁移到 C#。C# 是微软公司发布的一种面向对象的、运行于 .NET Framework 之上的高级程序设计语言。随着.NET Core 3.0 的即将发布,这个最初发布于 2016 年的平台终于有了最新的主版本,该平台具有通用性、模块化、跨平台和开放源代码的特性。这样,除了 Python 和 Java,开发者同样可以使用 C#完成机器学习任务。



最受欢迎的项目


TensorFlow.NET


SciSharp 上现已有几十个基于 .NET 的项目供开发者使用,从 star 数和 fork 上来看,最受欢迎的当属 TensorFlow.NET(简称TF.NET) 和 NumSharp。


其中,TensorFlow.NET 近期被谷歌列入 TensorFlow 官网推荐给全球开发者,并被微软的 ML.NET 1.3.1 集成,作为ML.NET里深度学习部分的重要组件,目前已经完成了用迁移学习算法进行图像分类的功能,并计划在年底完成图像对象检测的功能,届时将会对全球开发者公布。


————————————————

https://www.toutiao.com/i6811042082904343043/



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946223/viewspace-2684429/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
SAP虾客(~Suzhou Boy~)

注册时间:2019-08-22

  • 博文量
    1788
  • 访问量
    1223386