Рубрики
Без рубрики

Обучение модели Core ML с Turi Создать для классификации пород собак

Автор оригинала: Vardhan Kishore Agrawal.

В этом руководстве вы узнаете, как тренировать пользовательскую классификацию CORE ML ML ML ML для использования в приложениях IOS и MacOS. Ваша модель Core ML сможет различать пять разных пород к концу этого урока!

Вы можете вспомнить, что Apple приобрела машинное обучение и искусственный интеллект Startup Turi несколько лет назад на более чем в 200 млн долларов; Он предлагает мощные инструменты для создания современных моделей машинного обучения в течение короткого периода времени.

В этом руководстве вы будете учиться установить Turi Create на своем Mac, создайте сценарий Python и использовать этот скрипт для обучения модели Core ML, которую вы можете перетащить непосредственно в ваши проекты Xcode и быстро реализовывать в ваши приложения.

Начиная

Прежде чем мы начнем с фактической машиной, обучающейся его части, давайте сначала получим установку Turi и Python, и, конечно, вам нужно убедиться, что ваше оборудование и программное обеспечение соответствуют требованиям Turi.

Требования

Как и в любом запуске программного обеспечения, TURI CREATE имеет некоторые конкретные требования, которые можно найти на их Официальная страница GitHub Отказ

Тури Создать поддерживает:

  • MacOS 10.12+
  • Linux (с Glibc 2.12+)
  • Windows 10 (через WSL)

Turi Create требует:

  • Python 2.7, 3.5, 3.6
  • x86_64 архитектура
  • Не менее 4 ГБ оперативной памяти

Нижняя линия – до тех пор, пока ваш Mac – разумно Новое, вы должны быть в состоянии запустить Turi Create. Если вы хотите, вы можете следовать вместе с другой операционной системой; Тем не менее, вам может потребоваться изменить некоторые шаги для их работы.

Монтаж

Установка Turi Create довольно проста, особенно если вы знакомы с командной строкой. Хотя вы можете использовать более новую версию Python, я буду использовать Python 2.7 в этом руководстве.

В Macos Mojave Python 2.7 поставляется по умолчанию, поэтому все, что вам нужно сделать, это проверить версию. На вашем Mac открыть Приложения> Утилиты> Te rminal или просто искать его с помощью keyboard sho RTCUT Command -Космос.

Чтобы проверить версию Python на вашем Mac, введите:

$ python - version

Это скажет вам версию Python, и ваша консоль должна выглядеть что-то подобное:

Если ваша версия не является Python 2.7, или если она не установлена на вашем компьютере по какой-то причине, вы должны установить его По этой ссылке Отказ Если ваш выход выглядит похоже на мой, вы готовы продолжить.

Чтобы установить Turi Create, просто введите следующее в окне терминала:

$ pip install turicreate

Это все! Turi Create успешно устанавливается на вашем Mac, и он готов к использованию. Теперь вы можете создать классификацию, обнаружение, регрессию и другие типы моделей.

Набор данных

Для любой модели обучения машины вам нужен набор данных. В этом руководстве вы будете изучать, как тренировать простую классификацию классов породы собак, которая требует классификации изображений. Данные, которые я буду использовать, поступает из Стэнфордский университетский набор данных Отказ

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

Ради простоты мы просто используем пять разведений из сотен в наборе данных Стэнфорда, но вы можете использовать столько, сколько вы хотите. Я пошел вперед и организовал его для вас и создал Репозиторий для этого Отказ Если вы решите добавить больше пород собак, просто добавьте больше папок и назовите их по желанию.

Структура папки

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

Эта диаграмма иерархии должна объяснить все, и вам нужно будет получать папки в этом порядке, прежде чем продолжить с этим руководством. Если вы хотите изменить имена или организовать вещи по-разному, вам нужно будет убедиться, что вы получите записку об этом.

Обучение классификатора

После завершения настройки вы готовы погрузиться в мясо этого учебника – на самом деле обучение вашего классификатора. Мы будем работать в основном в Python, но если вы никогда не использовали Python раньше, это нормально. Я объясню каждый шаг, как мы идем, и если у вас есть какие-либо вопросы, не стесняйтесь оставить комментарий ниже.

Python File.

Во-первых, нам нужно будет иметь место, чтобы поставить наши мысли (то есть, конечно, в Python). Если у вас уже есть редактор, который поддерживает Python, например Атом или интегрированная среда разработки, такая как Пычарм , вы можете использовать их для создания пустого файла под названием Dog_breeds.py Отказ

Если вы предпочитаете более подробное маршрут разработчика, как я, вы можете использовать терминал, чтобы сделать то же самое. Вам нужно будет создать этот файл внутри вашего ml_classifier папка, рядом с Изображения папка, так что ваша иерархия выглядит так:

Чтобы создать новый файл, сначала введите целевой каталог:

$ cd ml_classifier

Затем создайте новый файл с именем Dog_breeds.py Отказ

$ touch dog_breeds.py

Воила! Ваши папки, файлы и изображения – это все, где они должны быть, и вы готовы продолжить следующий шаг. Мы будем использовать XCODE, чтобы открыть наш файл, поэтому убедитесь, что у вас его установлено и актуальны.

Загрузка изображений набора данных

Наконец, пришло время начать рассказывать Turi, что ему нужно сделать через файл Python, который мы только что создали. Если вы дважды щелкните файл, он должен открыть по умолчанию в XCode, если у вас его установлен. Если нет, вы также можете использовать другой редактор или Python IDE.

1. Импортные рамки

import turicreate

В верхней части файла вам нужно импортировать Turi Create Framework. Если вы хотите, вы можете создать имя для справки, добавив как <ваш Na я>. Например, если вы хотите обратиться к Это Как TC в вашем коде, вы можете написать:

import turicreate as tc

Это позволило бы вам назвать это TC вместо того, чтобы писать Turicreate Отказ В этом руководстве я буду использовать полную версию, вызывая это Turicreate уменьшить двусмысленность.

Вам также необходимо будет иметь дело с именами папок и другими задачами, связанными с ОС, чтобы классифицировать ваши изображения. Это потребует другая библиотека Python под названием ОС Отказ Чтобы импортировать его, просто добавьте следующее:

import os

2. Загрузка изображений

data = turicreate.image_analysis.load_images("images/")

Здесь мы храним все изображения в нашем наборе данных в переменной под названием данные Отказ С нашей Dog_breeds.py Файл находится в том же каталоге, что и Изображения Папка, мы можем просто поставить «Изображения/» как путь.

3. Определение этикеток

Теперь, когда TURI CREATE имеет все ваши изображения, вам нужно связать имена папок к имени метки. Эти имена этикеток – это то, что будет возвращено в вашей модели Core ML, когда он используется в приложении iOS или MacOS.

data["label"] = data["path"].apply(lambda path: os.path.basename(os.path.dirname(path)))

Это позволяет вам сопоставлять все ваши имена папок в название «этикетки», которое сообщает Turi создавать, что все изображения, которые находятся в папке «Cocker_spaniel», являются действительно кокетными спаниями.

4. Сохранить как SFRAME

В случае, если вы не знакомы с Sframe В простых терминах это словарь всех ваших данных (в этом случае изображение) и всех меток (в этом случае собака породы). Сохранить свой Sframe как это:

data.save("dog_classifier.sframe")

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

Обучение и тестирование

После того, как TURI CREATE есть все ваши меченные изображения на месте, пришло время войти в дом натязаться и, наконец, тренируйте вашу модель. Нам также нужно разделить данные, так что 80% используется для обучения, а 20% сохраняется для тестирования модели после проведения обучения – нам не придется тестировать его вручную.

1. Загрузка SFRAME.

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

data = turicreate.SFrame("dog_classifier.sframe")

Это присваивает данные Переменная, которая сейчас типа Sframe к SFRAME, который мы сохранили на предыдущем шаге. Теперь нам нужно будет разделить данные в данные тестирования и обучения. Как вышеупомянуты, мы будем делать в 80:20 разделение тестирования на данные тренировки.

2. Расщепление данных

Пришло время разделить данные. После вашего кода SFRAME добавьте следующее:

testing, training = data.random_split(0.8)

Этот код случайным образом разбивает данные 80-20 и присваивает его двум переменным, Тестирование и Обучение , соответственно. Теперь Turi автоматически проверяет вашу модель без необходимости вручную тестовые изображения и создать приложение – если вам нужно вносить настройки, вам не нужно будет полностью реализовать его, и вместо этого вы можете сделать их прямо в вашем Python файл.

3. Обучение, тестирование и экспорт

Ваша тяжелая работа наконец ушла! В этой строке кода Python вы просто скажете Turi Create, чтобы тренировать свою модель, указывая архитектуру, которую вы хотели бы использовать.

classifier = turicreate.image_classifier.create(testing, target="label", model="resnet-50")

Вы просто говорите Turi использовать свой Тестирование данные (указанные ранее) и используйте их для прогнозирования этикетки (На основании структуры папки от ранее) при использовании Resnet-50 , что является одним из самых точных архитектур модели обучения машины.

Чтобы использовать данные тестирования и убедитесь, что ваша модель будет точной, добавьте это:

testing = classifier.evaluate(training)print testing["accuracy"]

Это использует Обучение Данные, которые вы указали и хранит результаты после тестирования в вызове переменной (вы угадаете) Тестирование Отказ Для вашей информации он печатает точность, но вы можете распечатать другие вещи, а также достаточно времени на API Turi Create.

Последнее, но не в последнюю очередь, вы можете сохранить вашу модель прямо в вашу файловую систему с помощью этого одноклассника после того, как вы получите полезное имя:

classifier.save("dog_classifier.model")classifier.export_coreml("dog_classifier.mlmodel")

Конечно, вы также можете сохранить свою модель в других форматах, но для этого примера я сохранил его как модель Core ML.

Бег и вывод

Для всех вас разработчиков IOS там – нет, это не проект Xcode, который сохраняет автоматически компиляцию и жаловаться на ошибки. Для того, чтобы код вы только что написали, чтобы выполнить, нам нужно будет сделать это через терминал.

Запуск файла Python

Запуск файла Python легко! Убедитесь, что вы в правильном каталоге, и все, что вам нужно сделать, это ввести следующее в окне терминала:

python dog_breeds.py

Выход

После пары минут тренировок ваш Изображения папка и Dog_breeds.py Файл будет сопровождаться SFRAME, модельной папкой и A .mlmodel Файл, который является вашей моделью CORE ML!

Вам также будет представлен вывод в вашем окне терминала, который будет выглядеть что-то подобное:

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

Заключение

Я надеюсь, что вам понравилось читать этот учебник столько, сколько мне нравилось делать это! Вот несколько шагов, куда идти отсюда. Если вы хотите узнать, как использовать модель CARE ML в приложении iOS, проверить еще один из моих учебных пособий:

Начните с распознавания изображений в Core ML С технологическими достижениями мы находимся в том месте, где наши устройства могут использовать свои встроенные камеры, чтобы точно идентифицировать … код. tutsplus.com.

Этот учебник покажет вам, как взять ваш в результате dog_classifier.mlmodel Модель и внедрить его в приложении IOS Real-World. Он также научит вас разбирать живой видеопродувок и принимать отдельные рамки для классификации изображений.

Если у вас есть какие-либо вопросы или комментарии относительно этого учебника, не стесняйтесь спрашивать их в разделе комментариев ниже! Я всегда хочу услышать отзывы, вопросы или как вы использовали свои знания из этого урока.

Легко поддерживать мою работу!

Обязательно разбить этот «хлопье» кнопки столько раз, сколько вы можете, Поделиться этим руководством в социальных сетях и Подпишись на меня в Твиттере.

Вардхан Аграваль (@vhanagwal) | Twitter Последние твиты из Вардхана Агравала (@vhanagwal). Полностью самоучка #ios Developer, #instructor, и человек …