如何在 c# .net 核心应用程序中 运行 python 神经网络 keras 脚本

How to run python neural network keras script in c# .net core app

我需要 运行 python 中的神经网络脚本使用导入:

from keras.models import Sequential    
from keras.layers import Dense    
from keras.callbacks import History    
from keras.models import load_model    
import numpy as np    
import matplotlib.pyplot as plt    
np.random.seed(7)    
import pandas as pd    
from sklearn.model_selection import train_test_split    
from keras import optimizers

我尝试使用 IronPython 运行 它,但这不起作用。 IronPython 不识别 keras.models 等... 我也尝试 运行 它与 System.Diagnostic.Process 但这个解决方案也不起作用。它 运行 只有简单的 python 脚本和一些印刷品。

我只需要从 .cs 执行 .py 脚本 class。

我尝试使用 cmd.exe 和 运行 .py 脚本的示例,但它们不起作用。

有没有办法在 c# 应用程序中 运行 python 神经网络脚本?一定很简单。

编辑: 我的解决方案之一: 字符串文件名 =

string fileName="C:/Users/FUJITSU/source/repos/CardiologicClinic_WebApp/CardiologicClinic_WebApp/AI/xd.py";
                Process p = new Process();
                p.StartInfo = new ProcessStartInfo(@"C:\Users\FUJITSU\PycharmProjects\NIDUC\venv\Scripts\python.exe", fileName);
                p.StartInfo.WorkingDirectory = "C:/Users/FUJITSU/source/repos/CardiologicClinic_WebApp/CardiologicClinic_WebApp/AI";
                p.Start();
                p.WaitForExit();
                p.Close();

并产生错误:

line 1, in <module>
    from keras.models import load_model
ModuleNotFoundError: No module named 'keras'

我不认为每个 python 库都适用于 IronPython。发布您遇到的任何错误消息将有助于找到解决方案。

相反,请尝试使用 system('python myscript.py') 的 C# 版本调用 python。让两种语言一起工作肯定很困难。

(如果我可以发表评论,我会改为发表评论。请您原谅。)

解决方法如下:

 string fileName = "path to script.py";
            Process p = new Process();
            p.StartInfo = new ProcessStartInfo(@"path to python.exe", fileName);
            p.StartInfo.WorkingDirectory = "path to working dir";
            p.Start();
            p.WaitForExit();
            p.Close();

这对我来说很好。

您可以选择使用此命令隐藏进程:

p.startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;