Цель. Целью этой статьи является знакомство с машинным обучением на Android.
Шаги: мы выполним следующие шаги, которые кратко расскажут о настройке модели машинного обучения в вашем приложении для Android.
- Обучите простую модель tflite ML, которая решает уравнение y = 2 * x — 1
- Загрузите эту модель в Firebase
- Создайте приложение для Android
- Свяжите приложение Android с Firebase, чтобы загрузить модель
- Добавьте код в приложение Android для загрузки модели из firebase
- Используйте модель ML в своем приложении для Android для вывода y для предоставления x
«Начнем»
Шаг 1. Обучите модель машинного обучения tflite, которая решает уравнение y = 2*x — 1
На шаге 1 мы обучим модель линейной регрессии, которая решает уравнение, и преобразуем ее в тип tflite, чтобы ее можно было объединить и использовать в приложениях Android. Шаги, необходимые для обучения модели машинного обучения
- Создайте новый файл Google Colab
- Импортируйте библиотеки Python:
- Сгенерируйте случайные значения x и y, которые будут использоваться при обучении модели:
- Обучите модель с помощью tensorflow keras
Преобразовать модель в tflite
Сохраните модель в файловой системе, чтобы ее можно было скопировать. В этом примере модель сохраняется на Google Диске.
Полный URL-адрес файла: https://github.com/shtomar-adb/ML-Android/blob/main/Simple_Equation.ipynb
Шаг 2. Настройка Firebase и загрузка модели в Firebase
Второй шаг — загрузить обученную модель в Firebase. Приложение для Android загрузит модель из Firebase и будет использовать ее для прогнозирования. Выполните следующие действия, чтобы загрузить модель в Firebase.
- Создайте проект на https://console.firebase.google.com/.
- Откройте проект -> Перейти к Машинному обучению
- Перейти на пользовательскую вкладку
- Дайте уникальное имя вашей модели.
- Импортируйте сохраненную модель и опубликуйте ее.
После публикации модель tflite готова к использованию в приложении для Android.
3. Настройка Android-приложения
- Загрузите файл «google-services.json» из проекта Firebase, созданного на предыдущем шаге, и добавьте его в «приложение» основной модели.
- Добавьте следующие зависимости Firebase и Tensorflow в файл gradle на уровне модуля. Зависимость Firebase будет использоваться для загрузки модели tflite в приложение. Зависимость Tensorflow будет использоваться для взаимодействия с моделью tflite.
implementation platform('com.google.firebase:firebase-bom:30.3.1') implementation 'com.google.firebase:firebase-ml-modeldownloader' implementation 'org.tensorflow:tensorflow-lite:2.3.0'
- Загрузите модель tflite в соответствующее место в вашем приложении. В данном примере он загружается в MainActivity сразу после запуска приложения. Фрагмент кода для загрузки модели.
val conditions = CustomModelDownloadConditions.Builder() .requireWifi() .build() FirebaseModelDownloader.getInstance() .getModel("Equation-model", DownloadType.LOCAL_MODEL, conditions) .addOnCompleteListener {it: Task<CustomModel> -> val customModel = it.result //Use custom model for interpretations }
- Используйте пользовательскую модель для выполнения интерпретаций. В нашем случае модель обучена решать линейное уравнение y = 2*x — 1. Мы передадим x в модель в качестве входных данных и должны получить результат y. Фрагмент кода для интерпретации.
//Inference code val interpreter = Interpreter(it.result.file!!) val inputVal = FloatArray(1) inputVal[0] = 10f val output = Array(1) { FloatArray( 1 ) } interpreter.run(inputVal, output) Log.d("EQUATION MODEL:::", "The output from the model for the input 10 is:: ${output[0][0]}")
4. Проект Android с полным кодом
Пожалуйста, ознакомьтесь с проектом Android с полной реализацией здесь: https://github.com/shtomar-adb/ML-Android.