业界| Google试水—Go语言也要冒险尝试机器学习?

导读:Go又称Golang,是Google开发的一种静态强类型、编译型、并发型且具有垃圾回收功能的编程语言。Go语言于2009年11月正式宣布推出并开放源代码,开始在Linux及Mac OS X平台上进行了实现,后追加Windows系统下的实现。

大部分用过Go语言的人都认可其是一种非常不错的生产力工具,有人总结其优点如下:

部署简单 并发性好 语言设计良好 执行性能好

目前也有许多使用Go语言开发的成功项目,包括:nsq、docker、packer、skynet、Doozer、Heka、cbfs、tsuru、groupcache、god、gor等。鉴于其成功经验,有开发者想用Go语言来进行机器学习项目的开发。现在有一个好消息,对于想要使用Go语言作为开发平台的机器学习开发者来说,有越来越多的项目可以去进行选择了,虽然还是不多。

与其使用其他编程语言(主要是C/C++)编写的资料库,开发者现在能直接使用完全用Go语言编写的工具包展开工作了。现有的用其他语言编写的机器学习资料库虽然有很多的用户以及其特有文化,但是很多人对利用Go语言工具的便利特性也十分有兴趣。

下面我们来了解几个主要的Go语言机器学习项目:

  • Golearn

GoLearn是自称“内置电池”的机器学习资料库,绝对是首选项之一。

作者在项目描述中提到——简洁、易定制是其追求的目标。GoLearn中一些接口使用的数据处理方式和scikit-learn(一个非常流行的Python机器学习项目)是非常相似的。想要逃离Python的用户应该可以用它做一些短期的工作。其中另外还有一些使用C++构筑的线性模型资料库,但是其他的全是Go语言编写的。GoLearn实现了熟悉的Scikit-learn 适应/预测界面,可实现快速预估测试和交换。GoLearn是一个成熟的项目,它提供了交叉验证和训练/测试等辅助功能。

  • Goml

Goml自诩为“在线Golang机器学习工具”,据其开发者所言意思是其“包含了许多工具,能让你以在线方式学习其频道的数据内容。”这个项目之所以突出是因为其强调了其作为其他应用一部分存在的可能性,使得构筑“综合测试、大量文档以及简洁、高效、模块化的源代码”更加容易些了。但是如果你需要的知识解决基础的二元分类问题(是否是垃圾邮件?),你可能更适合使用Hector这个更小型的资料库。

  • Gorgonia

最新的一个分支(或者某种程度上说最令人感兴趣的)是Gorgonia。

这个机器学习资料库完全是用Go语言编写而成,据其开发者“chewxy”称能“提供动态建立神经网络及相关算法必需条件。”

关键在于“动态”。和之前的机器学习资料库Theano一样,Gorgonia允许你使用一系列原始资料库中的高阶术语来描述神经网络的行为。TensorFlow资料库也使用这种方式,使得开发者不用再亲自编写算法,也不用再提交那些能在不同项目中重复使用的项目。

为什么使用Go语言来编写这个机器学习项目Gorgonia?

其开发者在接受采访中提到:“我写Gorgonia其中一个原因是我曾经花费太久的时间尝试云端中部署Theano(大约在两年前)。”

总结:一个纯粹的Go语言解决方案,这意味着需要从其他编写语言中打包并将其糅合到一起的部分更少了。但是拥有这些Go语言资料库的主要优势并不在于部署,而是在于开发者的便利度。未来的机器学习开发者将有许多种开发语言可供选择,同时也意味着现在的Go语言开发者如果想要往机器学习专家方向发展的话也可以轻松一点。

Via infoworld

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2016-09-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ThoughtWorks

一个遗留系统自动化测试的七年之痒|TW洞见

今日洞见 文章作者、图片来自ThoughtWorks:胡志芳。封面图片来自网络。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司...

3358
来自专栏Java架构

高并发风控技术解密(上)

风控在任何一个公司都是比较神秘的存在,不仅线上很少分享,从安全角度讲也很少对外披露它的架构及设计。本人将就参与的风控建设谈谈风控的技术。(本文来源于本人内部分享...

2426
来自专栏DevOps时代的专栏

DevOps 三步工作法之持续反馈的技术与案例

导言 很高兴参与DevOps时代社区的拆书联盟第一季活动,有幸能与几位DevOps大牛一起解读《DevOps Handbook》一书,这本书作者牛,内容也很牛,...

2587
来自专栏Java学习网

程序员获取新编程技能的5个技巧学习

程序员获取新编程技能的5个技巧学习 “你是怎么学会所有这些框架和语言的?”,最近在黑客马拉松上一个朋友问我。 “其实,很简单,只要用你想学的东西去创建一个合...

24310
来自专栏TEG云端专业号的专栏

何维兵:大型DCI网络智能运营实践

做运营的同学,都有同样的感受,既希望被老板关注,又不希望被老板关注!因为觉得被老板关注时,常常是没什么好事发生。记得微信红包兴起时,有一次我们网络运营就有幸得到...

3333
来自专栏直播系统源码

短视频开发都需要什么技术?

今天我们来讲点干货,估计来看这篇帖子的人都知道短视频APP有多火,也都知道安卓系统在手机系统中占的市场份额有多大,那我就不多嘴巴拉巴拉一些行业背景了,以下我着重...

2650
来自专栏人工智能头条

感动!有人将吴恩达的视频课程做成了文字版

8273
来自专栏熊二哥

项目管理深入理解04--时间管理

进入比较重要的时间管理一章,重点是对WBS,工作单元,活动,资源,时间这一条线索的理解,熬夜加班到4点,继续俺的学习了,正好等等联调数据的状态,加油,熊二。 ...

2126
来自专栏SDNLAB

现代数据中心标准COTS服务器的演进

数据中心内的x86商用成品(COTS)服务器的标准化已经经过了很长时间,因为该架构提供了多功能、低成本、易于集成、更有效地维护和管理配置文件,总而言之,其成本低...

3234
来自专栏哲学驱动设计

框架模块设计经验总结

    三个月没写日志了,比较懒散……下半年准备做OEA 的 B/S 版本,比较复杂,需要从架构设计开始认真入手。正好今天到了部门反思的时间,今天先把原来的一些...

19910

扫码关注云+社区