TensorFlowSharp TensorFlow 的 .NET 绑定开源项目

我要开发同款
匿名用户2018年03月28日
59阅读

技术信息

开源地址
https://github.com/migueldeicaza/TensorFlowSharp
授权协议
MIT

作品详情

TesorFlowSharp是对TesorFlowC语言版API的封装,绑定为.NETAPI,也是TesorFlow的C#语言表述,以此来方便C#和F#开发人员使用 TesorFlow。

目前它与TesoFlow接口的绑定工作已经进入尾声,作者正在对API做一些优化。

使用TesorFlowSharp安装

最简单的入门方法是使用TesorFlowSharp的NuGet包,它包含了.NETAPI和64位 Liux、Mac和Widows的原生库。

uget istall TesorFlowSharp

或者你也可以在VisualStudio中的NuGet包UI中选择它。

在VS中,要先确保你的环境是.NET4.6.1或者更高版本,因为这个软件包使用了一些新的.NET特性。

当然,你也可以直接点击这里下载。

使用TesorFlowSharp

最好的学习方式是阅读SampleTest和Examples目录下的stad-aloe这两个demo,它们使用了大量TesorFlowSharp的API。

这种API绑定在设计上更接近使用显式TesorFlow图形和会话的Java和Go绑定。

通常会先创建一个图形(TFGraph)并在那里设置操作,然后从中创建会话(TFSessio),接着使用会话运行器设置输入和输出并执行。

例如:

usig(var graph = ew TFGraph ()){    graph.Import (File.ReadAllBytes ("MySavedModel"));    var sessio = ew TFSessio (graph);    var ruer = sessio.GetRuer ();    ruer.AddIput (graph ["iput"] [0], tesor);    ruer.Fetch (graph ["output"] [0]);    var output = ruer.Ru ();    // Fetch the results from output:    TFTesor result = output [0];}

在不需要独立设置图形的情况下,可以在会话中创建一个。以下示例显示如何滥用TesorFlow来计算两个数字的相加:

usig (var sessio = ew TFSessio()){    var graph = sessio.Graph;    var a = graph.Cost(2);    var b = graph.Cost(3);    Cosole.WriteLie("a=2 b=3");    // Add two costats    var addigResults = sessio.GetRuer().Ru(graph.Add(a, b));    var addigResultValue = addigResults.GetValue();    Cosole.WriteLie("a+b={0}", addigResultValue);    // Multiply two costats    var multiplyResults = sessio.GetRuer().Ru(graph.Mul(a, b));    var multiplyResultValue = multiplyResults.GetValue();    Cosole.WriteLie("a*b={0}", multiplyResultValue);}

下边是使用F#的同一个例子:

#r @"packages\TesorFlowSharp.1.4.0\lib\et461\TesorFlowSharp.dll"ope Systemope System.IOope TesorFlow// set the path to fid the ative DLLEviromet.SetEvirometVariable("Path",     Eviromet.GetEvirometVariable("Path") + ";" + __SOURCE_DIRECTORY__ + @"/packages/TesorFlowSharp.1.2.2/ative")module AddTwoNumbers =     let sessio = ew TFSessio()    let graph = sessio.Graph    let a = graph.Cost(ew TFTesor(2))    let b = graph.Cost(ew TFTesor(3))    Cosole.WriteLie("a=2 b=3")    // Add two costats    let addigResults = sessio.GetRuer().Ru(graph.Add(a, b))    let addigResultValue = addigResults.GetValue()    Cosole.WriteLie("a+b={0}", addigResultValue)    // Multiply two costats    let multiplyResults = sessio.GetRuer().Ru(graph.Mul(a, b))    let multiplyResultValue = multiplyResults.GetValue()    Cosole.WriteLie("a*b={0}", multiplyResultValue)

推进TesorFlowSharp

如果你想推进TesorFlowSharp的发展,可以阅读 CONTRIBUTING.md 。

功能介绍

TensorFlowSharp 是对 TensorFlow C 语言版 API 的封装,绑定为 .NET API,也是 TensorFlow 的 C# 语言表述,以此来方便 C# 和 F# 开发...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论