首页 > 解决方案 > 如何在 Jupyter Notebook 和 Windows 窗体应用程序之间传输数据?

问题描述

我在 jupyter notebook 中有一个神经网络,我将它用作我的程序的黑匣子。网络接收图像,进行一些更改并返回图像。我正在尝试找到一种方法将图像和 int 值从 winform 发送到 jupyternotebook(可能作为它的路径),然后将结果返回到能够将其保存在计算机上的 windows 窗体。如果有帮助,神经网络是基于 Keras 的。

我尝试了一些我在互联网上找到的指南,我将它们链接在下面,并向几位老师寻求帮助,但我没有任何结果。

以下是我发现的东西:

https://ndres.me/post/jupyter-notebook-rest-api/

如何将图像文件放入 json 对象中?

使用 C#.net 在 winform 中调用和使用 Web API

https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/bb412179(v=vs.100)

标签: c#pythonwinformsapijupyter-notebook

解决方案


您可以选择另一种方式:

使用你的 jupyter notebook,保存 Keras 模型,然后构建一个 python 服务器来监听来自你的 WinForms 程序的调用。

您可以从一些更相关的教程开始:

  1. 使用 tf keras 训练和服务 ML 模型
  2. 使用 TensorFlow Serving 和 Flask 部署 Keras 模型

基本上,你想要做的是:

  1. 保存模型的权重和图表。
  2. 充当通过某种协议(例如 HTTPRequests 或 RPC)侦听传入请求的服务器
  3. 让你的 WinForms 程序调用它并得到答案。

根据您的应用,您可以:

  1. 将图像作为列表列表返回(例如,在 RBG 中,您可以指定每个像素和通道的确切值)
  2. 返回图像的二进制流(对其进行编码和解码)
  3. 编码为 Base64 字符串。

您还可以探索更多选项。最终,现在您有了一个在后台运行并等待 WinForms 使用图像调用它的服务。如果您选择基于 Web 的协议(例如 Flask),您也可以通过 Internet 提供它。


推荐阅读