Как запустить скрипт keras для нейронной сети Python в приложении c # .net core - PullRequest
1 голос
/ 18 октября 2019

Мне нужно запустить скрипт нейронной сети 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 с некоторыми отпечатками.

Мне нужно просто выполнить сценарий .py из класса .cs.

Я пробую примеры с cmd.exe с сценарием запуска .py, но ониНе работает.

Есть ли способ запустить скрипт нейронной сети Python в приложении C #? Это должно быть очень просто.

РЕДАКТИРОВАТЬ: Одно из моих решений: строка fileName =

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'

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Вот решение:

 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;
0 голосов
/ 18 октября 2019

Я не думаю, что каждая библиотека Python будет работать в IronPython. Публикация любых сообщений об ошибках, которые у вас есть, будет полезна при поиске решения.

Вместо этого попробуйте вызвать python с использованием версии C # system('python myscript.py'). Это непросто, хотя заставить два языка работать вместе.

(Если бы я мог прокомментировать, я бы сделал этот комментарий вместо этого. Прошу прощения, пожалуйста.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...