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

Почему эта история?

У большинства студентов, которых я встретил в прошлом году, были общие вопросы, которые:

  1. Они знают, как обучать модель, но им сложно их использовать?
  2. Некоторые из них не понимают: с чего начать, как построить, как экспортировать, как использовать в Android.

Итак, буквально я просто планировал создать проект в реальном времени с нуля.

В этом проекте мы собираемся использовать

Tech Stack

  1. Python (подготовить набор данных) + TensorFlow (обучить и построить модель tflite).
  2. Android (Java).

Используется IDE

Colab для python (встроенный блокнот для Python от Google)



Android Studio

Https://developer.android.com/studio

Начнем с создания модели машинного обучения на Python

  1. Создайте Новый проект в colab.

2. Установите время выполнения (Размещенная среда выполнения).

3. Давайте начнем код,

Я свяжу блокнот, в котором есть весь код вместе с комментариями.



Просто воспроизведите это, и это будет прямо вперед.

Позвольте мне объяснить код,

А. Импортируйте следующее:

  1. Tensorflow для основных функций машинного обучения
  2. 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

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

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%, нам нужно добавить еще несколько данных.

Если у вас возникнут сомнения, пожалуйста, свяжитесь со мной.

С любовью

Строить на миллиарды