【发布时间】:2021-03-24 21:48:43
【问题描述】:
我使用链接https://pypi.org/project/EVM/ 使用称为EVM(极值机)的机器学习和基于统计的分类器。我在 python 中训练模型并使用以下代码将其保存为 pickle 文件。
import EVM
import pickle
mevm = EVM.MultipleEVM(tailsize=300, cover_threshold = 0.7, distance_multiplier = 0.7, distance_function = scipy.spatial.distance.euclidean)
mevm.train([trainX[i] for i in list(trainX.keys())])
#Save the trained model
with open('model.pkl','wb') as f:
pickle.dump(mevm,f)
我可以使用相同的 Pickle 模块在 Python 中轻松加载相同的模型。当我保存时,所有权重都保存在 pickle 文件中,我可以进行如下推断,
import pickle
import EVM
with open('model.pkl','rb') as b:
mevm = pickle.load(b)
print("Probability of given input", mevm.max_probabilities([embeds[i]]))
但我无法在 Android/Java 中读取相同的 pickle 文件(我想在我的 android 应用程序中使用这个保存的模型)。当我检查 EVM 类时,有一个 C 文件和一个使用“.pyx”文件连接的 C++ 文件。所有这 3 个文件都是使用 python EVM(即导入 EVM)类读取的。有关文件,请参阅以下链接 https://pypi.org/project/EVM/#files
我的问题是
- 如何在 Android/Java 中读取这个保存的模型?
- 既然是与C、C++和python链接的,那能用Java读吗?
- 还有其他更好的方法来保存它,以便我可以使用它 Andriod/Java 吗?
感谢任何潜在客户。
在此先感谢 :)
【问题讨论】:
标签: java python machine-learning serialization pickle