让Keras在c#中训练模型预测

时间:2017-12-03 23:27:15

标签: c# python .net tensorflow keras

正如标题所述,我正在尝试使用我的Keras(tf后端)预训练模型来预测c#。什么是最好的方法?

我已经尝试过IronPython,但它给了我错误,搜索后我发现它不受支持。简单地调用python脚本是行不通的,因为目标Windows设备不会安装python解释器。

3 个答案:

答案 0 :(得分:6)

这个问题有些模糊,但我会尽力回答:

Tensorflow核心是用c ++编写的,并且公开了一个接口,可以被用任何语言编写的客户端使用(尽管是的,Python目前是最发达的)。

你能做什么:

  • 您可以使用python脚本来训练keras模型并将其计算图保存在文件中。然后使用TensorFlowSharp ---这是使用c#与tensorflow API签订合同的项目 - 重新加载计算图并使用经过训练的网络生成预测。
  • 如果您的设备是手机,平板电脑等,Tensorflow for mobile也可以为您提供帮助。它的工作方式与上面的选项类似。不过,我不确定他们是否会为Windows手机提供支持。
  • 你提到过:

      

    [...]设备没有安装python解释器。

    好吧,好的。但是,您可以定义一个引导过程,该过程将级联必要依赖项的安装(包括cpython)。例如,某些应用程序会这样做来设置数据库。在这种情况下,您可以创建一个微服务来启动tensorflow并通过文件,管道或套接字回答预测请求。然后,您的c#应用程序将连接到您的微服务并请求预测。

答案 1 :(得分:0)

尝试Keras.NET。使用C#numpy并调用已安装的Keras和后端。

https://github.com/SciSharp/Keras.NET

我成功地使用它来直接从C#中使用Keras进行训练和预测。不理想,但是可以。

答案 2 :(得分:-5)

它不能那样工作,因为你甚至无法在C#项目中安装tensorflow。放弃C#堆栈并学习python堆栈中的框架,例如。如果您需要在Web应用程序中使用预测结果,请了解Flask或Django