jpmml / jpmml-transpiler

Java Transpiler (Translator + Compiler) API for PMML
GNU Affero General Public License v3.0
28 stars 2 forks source link

Customizing the transpilation of model verification data #4

Closed ahmed-shariff closed 3 years ago

ahmed-shariff commented 4 years ago

When I am trying to add execute the transpiler I get the following error:

/PMML$708533063.java:126: error: code too large
    private final static ModelVerification buildModelVerification$4766562() {
                                           ^
1 error
java.io.IOException
    at org.jpmml.codemodel.CompilerUtil.compile(CompilerUtil.java:81)
    at org.jpmml.codemodel.CompilerUtil.compile(CompilerUtil.java:56)
    at org.jpmml.codemodel.CompilerUtil.compile(CompilerUtil.java:49)
    at org.jpmml.transpiler.TranspilerUtil.compile(TranspilerUtil.java:80)
    at org.jpmml.transpiler.Main.run(Main.java:115)
    at org.jpmml.transpiler.Main.main(Main.java:98)

I've attached the pickle file, pmml file here for your reference . The pickle file is generated in python using:

joblib.dump(self.classifier, out_file_name + ".pkl.z", compress = 9)
vruusmann commented 4 years ago

Your PMML document contains too many verification data records.

The JPMML-Transpiler command-line application could provide an option for enabling/disabling this verification functionality (or limiting the size of the verification dataset to at most N data records).

In the meantime, please re-export your model, and: 1) Don't call the PMMLPipeline.verify(X) method at all 2) Limit the number of rows in the verification dataset. Right now you're attempting to store 17547 data records, which is a bit too much (100 would suffice).

ahmed-shariff commented 4 years ago

I didn't realise it stores all that data. It exports without a hitch now. Thank you.