nok / sklearn-porter

Transpile trained scikit-learn estimators to C, Java, JavaScript and others.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ValueError: invalid literal for int() with base 10: 'post1' on Example from Readme

MarcusSchilling opened this issue · comments

Hello,

I tried to run Porter to transform my RandomForestClassifier to JavaScript. I ran into an unexpected "error invalid literal for int() with base 10: 'post1'". Then I thought, let's try the demo from the README of sklearn-porter. The result remained the same. Can anyone tell me if this is a mistake by sklearn-porter or where my real problem might lie?

Error Message

ValueError Traceback (most recent call last)
in
10
11 # Export:
---> 12 porter = Porter(clf, language='java')
13 output = porter.export(embed_data=True)
14 print(output)

/opt/conda/lib/python3.7/site-packages/sklearn_porter/Porter.py in init(self, estimator, language, method, **kwargs)
59 from sklearn import version as sklearn_ver
60 sklearn_ver = str(sklearn_ver).split('.')
---> 61 sklearn_ver = [int(v) for v in sklearn_ver]
62 major, minor = sklearn_ver[0], sklearn_ver[1]
63 patch = sklearn_ver[2] if len(sklearn_ver) >= 3 else 0

/opt/conda/lib/python3.7/site-packages/sklearn_porter/Porter.py in (.0)
59 from sklearn import version as sklearn_ver
60 sklearn_ver = str(sklearn_ver).split('.')
---> 61 sklearn_ver = [int(v) for v in sklearn_ver]
62 major, minor = sklearn_ver[0], sklearn_ver[1]
63 patch = sklearn_ver[2] if len(sklearn_ver) >= 3 else 0

ValueError: invalid literal for int() with base 10: 'post1'

Demo Code

from sklearn.datasets import load_iris
from sklearn.tree import tree
from sklearn_porter import Porter

Load data and train the classifier:

samples = load_iris()
X, y = samples.data, samples.target
clf = tree.DecisionTreeClassifier()
clf.fit(X, y)

Export:

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

It's a bug in sklearn_porter.
Use another version of scikit_learn for now, 0.22.2.post1 is not compatible.
Use 0.22.2 or 0.22. They all work fine.

See duplicate #67.