Существует модель .PMML: random_forest.pmml, созданная с помощью этих кодов Python в colab:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn2pmml import PMMLPipeline
from sklearn2pmml import sklearn2pmml
# Load dataset
iris = load_iris()
X, y = iris.data, iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Train model
clf = RandomForestClassifier(n_estimators=100)
clf.fit(X_train, y_train)
# Create a PMML pipeline
pipeline = PMMLPipeline([("classifier", clf)])
# Save the model to PMML
sklearn2pmml(pipeline, "random_forest.pmml")
Я хочу использовать эту модель в проекте Android, используя эту библиотеку:
https://github.com/jpmml/jpmml -оценщик/дерево/мастер
implementation 'org.jpmml:pmml-evaluator-metro:1.6.5'
и реализация:
val inputStream: InputStream = assets.open("random_forest.pmml")
val modelEvaluator = LoadingModelEvaluatorBuilder()
.load(inputStream)
.build()
modelEvaluator?.verify()
Но в начале сборки modelEvaluator выдает исключение:
FATAL EXCEPTION: main
Process: com.example.testapplication, PID: 30485
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/awt/Image;
at org.glassfish.jaxb.runtime.v2.model.impl.RuntimeBuiltinLeafInfoImpl.(RuntimeBuiltinLeafInfoImpl.java:337)
at org.glassfish.jaxb.runtime.v2.model.impl.RuntimeTypeInfoSetImpl.(RuntimeTypeInfoSetImpl.java:31)
at org.glassfish.jaxb.runtime.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:91)
at org.glassfish.jaxb.runtime.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:46)
at org.glassfish.jaxb.runtime.v2.model.impl.ModelBuilder.(ModelBuilder.java:119)
at org.glassfish.jaxb.runtime.v2.model.impl.RuntimeModelBuilder.(RuntimeModelBuilder.java:55)
at org.glassfish.jaxb.runtime.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:403)
at org.glassfish.jaxb.runtime.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:251)
at org.glassfish.jaxb.runtime.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:77)
at org.glassfish.jaxb.runtime.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1111)
at org.glassfish.jaxb.runtime.v2.ContextFactory.createContext(ContextFactory.java:140)
at java.lang.reflect.Method.invoke(Native Method)
at jakarta.xml.bind.ContextFinder.newInstance(ContextFinder.java:274)
at jakarta.xml.bind.ContextFinder.newInstance(ContextFinder.java:263)
at jakarta.xml.bind.ContextFinder.find(ContextFinder.java:395)
at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:691)
at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:632)
at org.jpmml.model.JAXBUtil.getContext(JAXBUtil.java:107)
at org.jpmml.evaluator.LoadingModelEvaluatorBuilder.load(LoadingModelEvaluatorBuilder.java:151)
at org.jpmml.evaluator.LoadingModelEvaluatorBuilder.load(LoadingModelEvaluatorBuilder.java:138)
at com.example.testapplication.MainActivity.createEvaluator(MainActivity.kt:90)
at com.example.testapplication.MainActivity.getCategory(MainActivity.kt:29)
at com.example.testapplication.MainActivity.onCreate(MainActivity.kt:23)
at android.app.Activity.performCreate(Activity.java:7009)
at android.app.Activity.performCreate(Activity.java:7000)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Подробнее здесь: https://stackoverflow.com/questions/789 ... -exception
Чтение модели PMML в Android вызывает исключение ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1727352223
Anonymous
Существует модель [b].PMML[/b]: random_forest.pmml, созданная с помощью этих кодов Python в colab:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn2pmml import PMMLPipeline
from sklearn2pmml import sklearn2pmml
# Load dataset
iris = load_iris()
X, y = iris.data, iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Train model
clf = RandomForestClassifier(n_estimators=100)
clf.fit(X_train, y_train)
# Create a PMML pipeline
pipeline = PMMLPipeline([("classifier", clf)])
# Save the model to PMML
sklearn2pmml(pipeline, "random_forest.pmml")
Я хочу использовать эту модель в проекте Android, используя эту библиотеку:
https://github.com/jpmml/jpmml -оценщик/дерево/мастер
implementation 'org.jpmml:pmml-evaluator-metro:1.6.5'
и реализация:
val inputStream: InputStream = assets.open("random_forest.pmml")
val modelEvaluator = LoadingModelEvaluatorBuilder()
.load(inputStream)
.build()
modelEvaluator?.verify()
Но в начале сборки [b]modelEvaluator[/b] выдает исключение:
FATAL EXCEPTION: main
Process: com.example.testapplication, PID: 30485
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/awt/Image;
at org.glassfish.jaxb.runtime.v2.model.impl.RuntimeBuiltinLeafInfoImpl.(RuntimeBuiltinLeafInfoImpl.java:337)
at org.glassfish.jaxb.runtime.v2.model.impl.RuntimeTypeInfoSetImpl.(RuntimeTypeInfoSetImpl.java:31)
at org.glassfish.jaxb.runtime.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:91)
at org.glassfish.jaxb.runtime.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:46)
at org.glassfish.jaxb.runtime.v2.model.impl.ModelBuilder.(ModelBuilder.java:119)
at org.glassfish.jaxb.runtime.v2.model.impl.RuntimeModelBuilder.(RuntimeModelBuilder.java:55)
at org.glassfish.jaxb.runtime.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:403)
at org.glassfish.jaxb.runtime.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:251)
at org.glassfish.jaxb.runtime.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:77)
at org.glassfish.jaxb.runtime.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1111)
at org.glassfish.jaxb.runtime.v2.ContextFactory.createContext(ContextFactory.java:140)
at java.lang.reflect.Method.invoke(Native Method)
at jakarta.xml.bind.ContextFinder.newInstance(ContextFinder.java:274)
at jakarta.xml.bind.ContextFinder.newInstance(ContextFinder.java:263)
at jakarta.xml.bind.ContextFinder.find(ContextFinder.java:395)
at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:691)
at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:632)
at org.jpmml.model.JAXBUtil.getContext(JAXBUtil.java:107)
at org.jpmml.evaluator.LoadingModelEvaluatorBuilder.load(LoadingModelEvaluatorBuilder.java:151)
at org.jpmml.evaluator.LoadingModelEvaluatorBuilder.load(LoadingModelEvaluatorBuilder.java:138)
at com.example.testapplication.MainActivity.createEvaluator(MainActivity.kt:90)
at com.example.testapplication.MainActivity.getCategory(MainActivity.kt:29)
at com.example.testapplication.MainActivity.onCreate(MainActivity.kt:23)
at android.app.Activity.performCreate(Activity.java:7009)
at android.app.Activity.performCreate(Activity.java:7000)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Подробнее здесь: [url]https://stackoverflow.com/questions/78907282/reading-pmml-model-in-android-cause-exception[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия