首页 > 解决方案 > 使用导出的 sklearn 模型时 Android Studio 中的“代码太大”

问题描述

目前我正在尝试将模型从 sklearn 导出到 Android。为此,我使用库sklearn-portersklearn-porter)。

这会从经过训练的模型生成一个 Java 类,如下所示:

class DecisionTreeClassifier {

   public static int predict(double[] features) {
        int[] classes = new int[2];

        if (features[350] <= 0.5156863033771515) {
            if (features[568] <= 0.0019607844296842813) {
                if (features[430] <= 0.0019607844296842813) {
                    if (features[405] <= 0.009803921915590763) {
...
}

该文件的大小约为 1 MB,因此 Android Studio 中会出现“代码太大”错误。

这个问题有解决方案吗?

标签: javaandroidscikit-learn

解决方案


当你用 then 执行 porter 时,export_data=True你还会得到一个小的 java 类,它从文件中读取 DecisionTree 参数.json

porter = Porter(clf, language='java')
output = porter.export(export_data=True)
print(output)

推荐阅读