Options

Error on Keras Model

alfonso_gordillalfonso_gordill Member Posts: 4 Contributor I
edited March 2020 in Help
Unsupported Pandas Version

"The Current Version is 1.0.1 of the Pandas module for Python is not supported.
Please maker sure that the pandas module for Python has at least version 0.12.0"

I
f Pyhon local installation from Anaconda had Pandas Vesrion 1.0.1 why Keras Model Inside of RapidMiner Keras Operators is asking to down to a previous version of Pandas ?

Best Answer

Answers

  • Options
    alfonso_gordillalfonso_gordill Member Posts: 4 Contributor I
    Thanks varunm1, I have installed RapidMiner in Windows also I have RapidMiner in a MAC, the previous error was with my Windows but in my MAC I have the same version of Anaconda and RapidMiner but in my MAC box I am running the same process without problem.

    Both Anaconda's installations Windows and MAC have the same Pandas Version but the error is only in Windows RapidMiner no problem with my MAC Rapidminer Keras process.
    Please let me know why I have the error only in my Windows box  
  • Options
    phellingerphellinger Employee, Member Posts: 103 RM Engineering
    Hi @alfonso_gordill,

    Can you please make sure you have Python Scripting 9.6.0, that is the first version officially supporting Pandas 1.0+ (as that Pandas version came out later than earlier extension versions).
    Also, the Python Scripting settings on the Preferences dialog should point to the Python binary / environment you want to use, that may be a difference between the two setup. When you click on Test, it should list the Pandas version found.

    Best,
    Peter
  • Options
    wongcrwongcr Member Posts: 7 Contributor II
    edited March 2021
    There is a bug in the extension; if you have pandas >= 1.0.0 then you will get an error "Unsupported Pandas version".  This is because class  com.rapidminer.operator.scripting.python.PythonSetupTester has a bug: 

    private boolean pandasVersionNotSufficient(final String pythonPath) {
            final String script = String.format("import pandas%nimport sys%nif float(pandas.__version__.split('.')[1])<%d:%n    sys.exit(%d)", 12, 77);
            return this.checkScriptForExitCode(script, pythonPath, 77, ".py");
        }

    This only checks for the middle of the pandas version string "0.12.0"  i.e. Pandas 1.0.0  (or the current 1.2.3) will always fail as 2 < 12 until we eventually get to Pandas 1.12.0 version!!

    Please update the code to do proper version checking - see https://stackoverflow.com/questions/198431/how-do-you-compare-two-version-strings-in-java -OR- get rid of the pandas version checking since this will be done automatically by the pip/conda keras installation?

    Unfortunately we can't just patch rxm_keras-1.0.3.jar as it is digitally signed.

    I can't use the DL4J extension as it doesn't support many of the Keras extension eg custom loss functions, GRU RNN etc

    And quite frankly, whats the point of a GUI like Rapidminer if we have to drop back to python (as varrunm1 suggestion) anyway?

    The keras extension was perfect - let's keep the visual coding where possible, it's great for teaching
  • Options
    RBSB61RBSB61 Member Posts: 3 Contributor I
    while running keras samples model iris_classification getting error mandatory input missing at port apply Keras models.model. Also getting the error process failed with this error
    • Exception: java.lang.NullPointerException
    • Message: null
    • Stack trace:
    • java.lang.ProcessBuilder.start(ProcessBuilder.java:1012)
    • com.rapidminer.operator.scripting.AbstractScriptRunner.getProcessWithLogging(AbstractScriptRunner.java:374)
    • com.rapidminer.operator.scripting.python.PythonScriptRunner.start(PythonScriptRunner.java:322)
    • com.rapidminer.operator.scripting.AbstractScriptRunner.run(AbstractScriptRunner.java:157)
    • com.rapidminer.extension.keras.general.Sequential.doWork(Sequential.java:436)
    • com.rapidminer.operator.Operator.execute(Operator.java:1023)
    • com.rapidminer.operator.execution.SimpleUnitExecutor.execute(SimpleUnitExecutor.java:77)
    • com.rapidminer.operator.ExecutionUnit$2.run(ExecutionUnit.java:805)
    • com.rapidminer.operator.ExecutionUnit$2.run(ExecutionUnit.java:800)
    • java.security.AccessController.doPrivileged(Native Method)
    • com.rapidminer.operator.ExecutionUnit.execute(ExecutionUnit.java:800)
    • com.rapidminer.operator.OperatorChain.doWork(OperatorChain.java:423)
    • com.rapidminer.operator.Operator.execute(Operator.java:1023)
    • com.rapidminer.Process.executeRoot(Process.java:1464)
    • com.rapidminer.Process.lambda$executeRootInPool$5(Process.java:1443)
    • com.rapidminer.studio.concurrency.internal.AbstractConcurrencyContext$AdaptedCallable.exec(AbstractConcurrencyContext.java:362)
    • java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    • java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    • java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    • java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175)

  • Options
    phellingerphellinger Employee, Member Posts: 103 RM Engineering
    Hi @RBSB61,

    Please make sure you are running the latest Python Scripting extension version (9.9+).

    Regarding Keras, please consider varunm1's remarks above.

    Best,
    Peter
  • Options
    RBSB61RBSB61 Member Posts: 3 Contributor I
    Latest Python Scripting extension version (9.9+) is running. Any other solution if we are getting that error

Sign In or Register to comment.