Создание приложения для преобразования тепла с помощью машинного обучения в Android с нуля

Почему эта история?
У большинства студентов, которых я встретил в прошлом году, были общие вопросы, которые:
- Они знают, как обучать модель, но им сложно их использовать?
- Некоторые из них не понимают: с чего начать, как построить, как экспортировать, как использовать в Android.
Итак, буквально я просто планировал создать проект в реальном времени с нуля.
В этом проекте мы собираемся использовать
Tech Stack

- Python (подготовить набор данных) + TensorFlow (обучить и построить модель tflite).
- Android (Java).
Используется IDE
Colab для python (встроенный блокнот для Python от Google)
Android Studio
Https://developer.android.com/studio
Начнем с создания модели машинного обучения на Python
- Создайте Новый проект в colab.
2. Установите время выполнения (Размещенная среда выполнения).

3. Давайте начнем код,
Я свяжу блокнот, в котором есть весь код вместе с комментариями.
Просто воспроизведите это, и это будет прямо вперед.
Позвольте мне объяснить код,
А. Импортируйте следующее:
- Tensorflow для основных функций машинного обучения
- Numpy для представления вложенного массива
import tensorflow as tf import numpy as np
Б. Подготовить набор данных в массиве,
X - ›Цельсий
Y - ›Фаренгейт
celcius_list = np.array([0, 2, 8, 10, 11, 16, 22, 25, 66, 76, 83]) fahrenheit_list = np.array([32, 35.6, 46.4, 50, 51.8, 60.8, 71.6, 77, 150.8, 168.8, 181.4])
С. Создание нейронной сети
layer = tf.keras.layers.Dense(units=1, input_shape=[1]) model = tf.keras.Sequential([layer]) model.compile(loss='mean_squared_error', optimizer=tf.keras.optimizers.Adam(0.1))
D. Обучение нейронной сети с помощью набора данных
history = model.fit(celcius_list, fahrenheit_list, epochs=1100, verbose=False)
E. Тестирование и визуализация сети

F. Импорт модели в TFlite (как актив Android)

Теперь вы можете скачать файл tflite
Не стесняйтесь использовать мой код, указанный выше
Пришло время Android

- Создайте новый проект в студии Android
- Попробуйте воспроизвести этот интерфейс

3. Загрузите загруженную модель tflite в код android.

4. Вставьте этот код в функцию OnCreate.

5. Теперь ваш ввод должен быть отправлен в загруженный файл tflite, поэтому я создаю функцию с именем doInference.
private Float doInference(String value) {
float[] input = new float[1];
input[0] = Float.valueOf(value);
float[][] output = new float[1][1];
tflite.run(input, output);
return output[0][0];
}
Репо этого проекта можно найти на
После создания этого приложения вы получите следующий результат:

Ура !!!
Приложение работает нормально,
Чтобы убедиться, что мы можем использовать конвертер Google,

Мы можем получить 99,5% точности, а чтобы получить 100%, нам нужно добавить еще несколько данных.
Если у вас возникнут сомнения, пожалуйста, свяжитесь со мной.
С любовью