机器/深度学习TensorFlowSharp、ShuffleSeg、VINE、FHIR介绍

以下为你介绍的机器学习/深度学习软件都可用在Linux系统上:TensorFlowSharp(TensorFlow 的 .NET 绑定)、ShuffleSeg(实时形义分割网络)、VINE(神经演化可视化工具)、FHIR(FHIR 标准协议缓冲工具)。

1、TensorFlowSharp(TensorFlow 的 .NET 绑定)

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

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

安装:

最简单的入门方法是使用 TensorFlowSharp 的 NuGet 包,它包含了 .NET API 和 64 位 Linux、Mac 和 Windows 的原生库。

nuget install TensorFlowSharp

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

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

使用 TensorFlowSharp:

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

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

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

例如:

using(var graph = new TFGraph ())

{

graph.Import (File.ReadAllBytes ("MySavedModel"));

var session = new TFSession (graph);

var runner = session.GetRunner ();

runner.AddInput (graph ["input"] [0], tensor);

runner.Fetch (graph ["output"] [0]);

var output = runner.Run ();

// Fetch the results from output:

TFTensor result = output [0];

}

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

using (var session = new TFSession())

{

var graph = session.Graph;

var a = graph.Const(2);

var b = graph.Const(3);

Console.WriteLine("a=2 b=3");

// Add two constants

var addingResults = session.GetRunner().Run(graph.Add(a, b));

var addingResultValue = addingResults.GetValue();

Console.WriteLine("a+b={0}", addingResultValue);

// Multiply two constants

var multiplyResults = session.GetRunner().Run(graph.Mul(a, b));

var multiplyResultValue = multiplyResults.GetValue();

Console.WriteLine("a*b={0}", multiplyResultValue);

}

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

#r @"packages\TensorFlowSharp.1.4.0\lib\net461\TensorFlowSharp.dll"

open System

open System.IO

open TensorFlow

// set the path to find the native DLL

Environment.SetEnvironmentVariable("Path", 

Environment.GetEnvironmentVariable("Path") + ";" + __SOURCE_DIRECTORY__ + @"/packages/TensorFlowSharp.1.2.2/native")

module AddTwoNumbers = 

let session = new TFSession()

let graph = session.Graph

let a = graph.Const(new TFTensor(2))

let b = graph.Const(new TFTensor(3))

Console.WriteLine("a=2 b=3")

// Add two constants

let addingResults = session.GetRunner().Run(graph.Add(a, b))

let addingResultValue = addingResults.GetValue()

Console.WriteLine("a+b={0}", addingResultValue)

// Multiply two constants

let multiplyResults = session.GetRunner().Run(graph.Mul(a, b))

let multiplyResultValue = multiplyResults.GetValue()

Console.WriteLine("a*b={0}", multiplyResultValue)

推进 TensorFlowSharp:

如果你想推进 TensorFlowSharp 的发展,可以在项目页中阅读 CONTRIBUTING.md。

下载地址:https://github.com/migueldeicaza/TensorFlowSharp

2、ShuffleSeg(实时形义分割网络)

机器/深度学习TensorFlowSharp、ShuffleSeg、VINE、FHIR介绍

ShuffleSeg —— 实时形义分割网络(ShuffleSeg: Real-time Semantic Segmentation Network)

ShuffleSeg 是一种计算高效的分割网络。该网络的设计灵感源自 ShuffleNet,这是一种高效的分类和检测网络。ShuffleNet 单元使用了分组卷积来提升性能,而没有使用 1x1 卷积。

实时形义分割对移动和机器人相关的应用而言非常重要,尤其是自动驾驶。大多数关于语义分割的研究只是提高分割模型的准确性,而很少关注在计算上有效的解决方案。

在 RTSeg 中,通过提供实时语义分割基准测试框架和特征提取,以及解码方法的解耦设计来弥补这一差距。

下载地址:https://gitee.com/mirrors/TFSegmentation

3、VINE(神经演化可视化工具)

VINE(Visual Inspector for Neuroevolution) 是用于神经演化的交互式数据可视化工具,由 Uber 公司开源。

此外,VINE 还可以与其他神经演化算法(例如遗传算法等)进行无缝的协作。事实上,这个工具独立于任何特定的神经演化算法,用户所需要做的只是稍微修改一下他的神经演化代码,保存它想要了解的行为特征。

神经演化(Neuroevolution)的概念最早于上世纪 80 年代被提出,其基本思路就是借鉴生物的演化过程:突变->选择->繁衍->突变->……。在机器学习领域,传统的方法是研究人员根据自己的经验去设计一个神经网络,然后通过实验验证它的效率。而神经演化的思路是,先初始化一群(例如 100 个)略有差异的网络,通过训练,筛选(也可以合成)出某些符合标准的个体,然后再复制出(例如)100 个副本,对这些副本网络添加一些随机扰动(类似生物进化中的突变),随后再训练和再筛选,如此往复,直至筛选出符合期望的网络为止。

下载地址:https://gitee.com/mirrors/VINE

4、FHIR(FHIR 标准协议缓冲工具)

FHIR —— 谷歌开源的 FHIR 标准的协议缓冲区工具,基于快速医疗保健互操作性资源(FHIR)格式的患者 EHR 原始记录,然后可利用机器学习预测医疗事件。

快速医疗保健互操作性资源(Fast Healthcare Interoperability Resources,FHIR)作为一项标准草案,描述的是用于交换电子病历数据格式和数据元以及应用程序界面,该标准由医疗服务标准组织 Health Level Seven International 制定。

当前的版本支持 Java 语言,对 C++ 、Go 和 Python 等语言的支持即将推出。另外,对于配置文件的支持以及帮助将遗留数据转换为 FHIR 的工具也将很快推出。

目前的版本还没有包括对训练 TensorFlow 模型提供支持,但未来将更新。

FHIR协议缓冲区:

该存储库包含Google针对FHIR的协议缓冲区的实现,这不是官方支持的Google产品。

要构建此存储库,请安装bazel和必要的依赖项(我们建议您从虚拟环境中运行它):

$ pip install -r bazel/requirements.txt

然后运行:

$ bazel test //...

这仍然是早期版本,可能会发生变化。对C++、Go和Python的支持即将推出。

下载地址:https://github.com/google/fhir

注明

以上就是机器/深度学习TensorFlowSharp、ShuffleSeg、VINE、FHIR的介绍内容,这些机器学习/深度学习软件都能使用在Linux操作系统中。

栏目相关文章