2

Jepを使用してPythonとJavaの統合を試みています。Jepを使用してJavaプログラムからsklearn.ensemble.forest.RandomForestClassifierオブジェクトとしてpickleファイル(rf.pkl)からrandomforestモデルをロードしました。このロードを1回にして、pythonスクリプトprediction.pyで定義されたpython関数を実行したい(rfモデルを使用して予測する)ために、Javaから「rfmodel」引数を送信してpython関数を呼び出します。しかし、java から python に送信された引数は、python では文字列として読み取られます。Pythonで引数のデータ型をsklearn.ensemble.forest.RandomForestClassifierとして保持するにはどうすればよいですか?

Jep jep = new Jep();
jep.eval("import pickle");
jep.eval("clf = pickle.load(open('C:/Downloads/DSRFmodel.pkl', 'rb'))");
jep.eval("print(type(clf))");
Object randomForest = jep.getValue("clf");

jep.eval("import integration");
jep.set("arg1", requestId);
jep.set("arg2", randomForest);
jep.eval("result = integration.trainmodel(arg1, arg2)");

------------
python.py

import pickle
def trainmodel(requestid, rf):

//when rf is printed it is 'str' format.
4

1 に答える 1