我正在尝试使用 Jep 进行 python 和 java 集成。我已经从使用 Jep 的 java 程序中将随机森林模型从 pickle 文件(rf.pkl)加载为 sklearn.ensemble.forest.RandomForestClassifier 对象。我希望这种加载是一次,所以我想通过从 java 发送“rfmodel”参数来调用 python 函数来执行 python 脚本 prediction.py 中定义的 python 函数(使用 rf 模型进行预测)。但是从 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.