chaquo / chaquopy

Chaquopy: the Python SDK for Android
https://chaquo.com/chaquopy/
MIT License
807 stars 132 forks source link

ValueError: Unknown optimizer: Custom>Adam #1075

Closed ist00dent closed 8 months ago

ist00dent commented 8 months ago

I encounter this error, I mainly try the code in Google Colab in order to know if everything is correct, but when I put it in python file in android studio, it has this error, neither .tflite nor .h5 is working

Chaquopy version

plugins { id 'com.android.application' version '8.0.2' apply false id 'com.android.library' version '8.0.2' apply false id 'com.chaquo.python' version '14.0.2' apply false }

Devices or emulators where the issue happens

Relevant parts of your code

It redirects me in this lines

in java file

module = python.getModule("token_helper");

in python file

model_path = join(dirname(file), 'lstm_model.h5')

Describe your issue

FATAL EXCEPTION: main Process: com.essential.tool.cursedetector, PID: 25991 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.essential.tool.cursedetector/com.essential.tool.cursedetector.DetectActivity}: com.chaquo.python.PyException: ValueError: Unknown optimizer: Custom>Adam at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3762) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3929) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2284) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:210) at android.os.Looper.loop(Looper.java:299) at android.app.ActivityThread.main(ActivityThread.java:8302) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1037) Caused by: com.chaquo.python.PyException: ValueError: Unknown optimizer: Custom>Adam at .tensorflow.python.keras.utils.generic_utils.class_and_config_for_serialized_keras_object(generic_utils.py:250) at .tensorflow.python.keras.utils.generic_utils.deserialize_keras_object(generic_utils.py:291) at .tensorflow.python.keras.optimizers.deserialize(optimizers.py:815) at .tensorflow.python.keras.saving.saving_utils.compile_args_from_training_config(saving_utils.py:228) at .tensorflow.python.keras.saving.hdf5_format.load_model_from_hdf5(hdf5_format.py:183) at .tensorflow.python.keras.saving.save.load_model(save.py:146) at .token_helper.(token_helper.py:27) at .importlib._bootstrap._call_with_frames_removed(:219) at .importlib._bootstrap_external.exec_module(:843) at .java.android.importer.exec_module(importer.py:554) at .java.android.importer.exec_module(importer.py:606) at .importlib._bootstrap._load_unlocked(:671) at .importlib._bootstrap._find_and_load_unlocked(:975) at .importlib._bootstrap._find_and_load(:991) at .importlib._bootstrap._gcd_import(:1014) at .importlib.import_module(init.py:127) at .chaquopy_java.Java_com_chaquo_python_Python_getModuleNative(chaquopy_java.pyx:129) at com.chaquo.python.Python.getModuleNative(Native Method) at com.chaquo.python.Python.getModule(Python.java:84) at com.essential.tool.cursedetector.DetectActivity.onCreate(DetectActivity.java:44) at android.app.Activity.performCreate(Activity.java:8191) at android.app.Activity.performCreate(Activity.java:8159) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1330) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3735) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3929)  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2284)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loopOnce(Looper.java:210)  at android.os.Looper.loop(Looper.java:299)  at android.app.ActivityThread.main(ActivityThread.java:8302)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1037) 

ist00dent commented 8 months ago

I add compile = False when calling load_model() and it works