jpmml/jpmml-transpiler

Customizing the transpilation of model verification data

ahmed-shariff opened this issue · 2 comments

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)

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).

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