Hi-Tech

Инструкция: Создание нейронной сети без навыков программирования

Шаг 0. Разбираемся, как устроены нейронные сети

Проще всего разобраться с принципами работы нейронных сетей можно на примере Teachable Machine — образовательного проекта Google.

В качестве выходных данных — то, что должна сделать нейросеть после обработки входящих данных — можно использовать гифку или звук. В качестве входящих данных — то, что нужно обработать нейронной сети — в Teachable Machine используется изображение с камеры ноутбука.

При поднятом вверх большом пальце — «Cool», а при удивленном лице с открытым ртом — «Wow». Например, можно научить Teachable Machine при поднятой вверх ладони говорить «Hi».

Для этого поднимаем ладонь и нажимаем на кнопку «Train Green» — сервис делает несколько десятков снимков, чтобы найти на изображениях закономерность. Для начала нужно обучить нейросеть. Набор таких снимков принято называть «датасетом».

Аналогично обучаем нейронную сеть распознавать удивленное лицо и большой палец. Теперь остается выбрать действие, которое нужно вызывать при распознании образа — произнести фразу, показать GIF или проиграть звук.

Teachable Machine показывает коэффициент «уверенности» — насколько система «уверена», что ей показывают один из навыков. Как только нейросеть обучена, её можно использовать.

Кроткое видео о работе Teachable Machine

Шаг 1. Готовим компьютер к работе с нейронной сетью

Сначала научим нейронную сеть распознавать цветы на картинке: ромашку, подсолнух, одуванчик, тюльпан или розу. Теперь сделаем свою нейронную сеть, которая при отправке изображения будет сообщать о том, что изображено на картинке.

Для создания собственной нейронной сети понадобится Python — один из наиболее минималистичных и распространенных языков программирования, и TensorFlow — открытая библиотека Google для создания и тренировки нейронных сетей.

Устанавливаем Python

При установке нужно поставить галочку «Add Python to PATH». Если у вас Windows: скачиваем установщик с официального сайта Python и запускаем его.

На macOS Python можно установить сразу через Terminal:

brew install python

7 или более старшая версия. Для работы с нейронной сетью подойдет Python 2.

Устанавливаем виртуальное окружение

Открываем командную строку на Windows или Terminal на macOS и последовательно вводим несколько команд:

pip install --upgrade virtualenv
virtualenv --system-site-packages Название
source Название/bin/activate

Он позволит устанавливать и запускать все библиотеки и приложения внутри одной папки — в команде она обозначена как «Название». На компьютер будет установлен инструмент для запуска программ в виртуальном окружении.

Устанавливаем TensorFlow

Вводим команду:

pip install tensorflow

На macOS она находится по адресу Macintosh HD/Users/Имя_пользователя/, на Windows — в корне C://. Всё, библиотека TensorFlow установлена в выбранную папку.

Можно проверить работоспособность библиотеки последовательно вводя команды:

Session()
print(sess.run(hello)) python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow')
sess = tf.

Если установка прошла успешно, то на экране появится фраза «Hello, Tensorflow».

Шаг 2. Добавляем классификатор

Например, классификатор поможет понять, где на картинке растение, и что это за цветок. Классификатор — это инструмент, который позволяет методам машинного обучения понимать, к чему относится неизвестный объект.

Открываем страницу «Tensorflow for poets» на Github, нажимаем на кнопку «Clone or download» и скачиваем классификатор в формате ZIP-файла.

Затем распаковываем архив в созданную на втором шаге папку.

Шаг 3. Добавляем набор данных

Это входные данные, на основе которых нейронная сеть научится понимать, какой цветок расположен на картинке. Набор данных нужен для обучения нейронной сети.

В нашем примере — это набор небольших фотографий, отсортированный по папкам с их названиями. Сначала скачиваем набор данных (датасет) Google с цветами.

Содержимое архива нужно распаковать в папку /tf_files классификатора.

Шаг 4. Переобучаем модель

Теперь нужно запустить обучение нейронной сети, чтобы она проанализировала картинки из датасета и поняла при помощи классификатора, как и какой тип цветка выглядит.

Переходим в папку с классификатором

Открываем командную строку и вводим команду, чтобы перейти в папку с классификатором.

Windows:

cd C://Название/

macOS:

cd Название

Запускаем процесс обучения

python scripts/retrain.py --output_graph=tf_files/retrained_graph.pb --output_labels=tf_files/retrained_labels.txt --image_dir=tf_files/flower_photos

Что указано в команде:

  • retrain.py — название Python-скрипта, который отвечает за запуск процесса обучения нейронной сети.
  • output_graph — создаёт новый файл с графом данных. Он и будет использоваться для определения того, что находится на картинке.
  • output_labels — создание нового файла с метками. В нашем примере это ромашки, подсолнухи, одуванчики, тюльпаны или розы.
  • image_dir — путь к папке, в которой находятся изображения с цветами.

Они помогают классификатору быстрее определять подходящую картинку. Программа начнет создавать текстовые файлы bottleneck — это специальные текстовые файлы с компактной информацией об изображении.

Время работы может занять несколько десятков минут — в зависимости от мощности процессора. Весь ход обучения занимает около 4000 шагов.

После завершения анализа нейросеть сможет распознавать на любой картинке ромашки, подсолнухи, одуванчики, тюльпаны и розы.

Перед тестированием нейросети нужно открыть файл label_image.py, находящийся в папке scripts в любом текстовом редакторе и заменить значения в строках:

input_height = 299
input_width = 299
input_mean = 0
input_std = 255
input_layer = "Mul"

Шаг 5. Тестирование

Назовите файл image.jpg. Выберите любое изображение цветка, которое нужно проанализировать, и поместите его в папку с нейронной сетью.

Для запуска анализа нужно ввести команду:

python scripts/label_image.py --image image.jpg

Нейросеть проверит картинку на соответствие одному из лейблов и выдаст результат.

Например:

Это значит, что с вероятностью 72% на картинке изображена роза.

Шаг 6. Учим нейронную сеть распознавать предпринимателей

Например, Элона Маска и Марка Цукерберга. Теперь можно расширить возможности нейронной сети — научить её распознавать на картинке не только цветы, но и известных предпринимателей.

Для этого нужно добавить новые изображения в датасет и переобучить нейросеть.

Собираем собственный датасет

Для создания датасета с фотографиями предпринимателей можно воспользоваться поиском по картинкам Google и расширением для Chrome, которое сохраняет все картинки на странице.

Аналогично все изображения с основателем Facebook — в папку \tf_files\flower_photos\zuckerberg\. Папку с изображениями Элона Маска нужно поместить в \tf_files\flower_photos\musk\.

Чем больше фотографий будет в папках, тем точнее нейронная сеть распознает на ней предпринимателя.

Переобучаем и проверяем

Для переобучения и запуска нейронной сети используем те же команды, что и в шагах 4 и 5.

python scripts/retrain.py --output_graph=tf_files/retrained_graph.pb --output_labels=tf_files/retrained_labels.txt --image_dir=tf_files/flower_photos

python scripts/label_image.py --image image.jpg

Шаг 7. «Разгоняем» нейронную сеть

Чтобы процесс обучения не занимал каждый раз много времени, нейросеть лучше всего запускать на сервере с GPU — он спроектирован специально для таких задач.

Процесс запуска и обучения нейронной сети на сервере похож на аналогичный процесс на компьютере.

Создание сервера с Ubuntu

Её можно установить самостоятельно, либо — если арендован сервер Selectel — через техподдержку компании. Нам понадобится сервер с операционной системой Ubuntu.

Установка Python

sudo apt-get install python3-pip python3-dev

Установка TensorFlow

pip3 install tensorflow-gpu

Скачиваем классификатор и набор данных

Аналогично шагам 2 и 3 на компьютере, только архивы необходимо загрузить сразу на сервер.

Переобучаем модель

python3 scripts/retrain.py --output_graph=tf_files/retrained_graph.pb --output_labels=tf_files/retrained_labels.txt --image_dir=tf_files/flower_photos

Тестируем нейросеть

python scripts/label_image.py --image image.jpg

Заказать сервер для нейросети

#нейросети #инструкция

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»