Эта статья представляет собой статью о машинном обучении на платформе Mac/iOS на сайте Raywenderlich.Create ML Tutorial:Getting Startedперевод .
Так как переводчик не имеет глубокого понимания машинного обучения, неизбежны упущения в переводе, прошу меня простить.
эта статьяСкачать
Create ML — свидетельство решимости Apple: Apple полна решимости упростить использование моделей машинного обучения в ваших приложениях. и с помощью Xcode и Swift, чтобы сократить время обучения.
В то же время вы лучше познакомитесь с набором инструментов и терминологией машинного обучения. Не нужно вводить математику! Вам не нужно знать, как написать компилятор для использования Swift, и вам не нужно писать новый Алгоритм ML для использования классификатора С Create ML у вас нет причин не начать изучать машинное обучение!
Краткая история Apple ML:
- Core ML: Анонсировано на WWDC 2017, уже поддерживается всеми основными платформами машинного обучения для экспорта существующих моделей, но существующие модели всегда слишком велики и/или слишком универсальны.
- Turi Create: Приобретенный после WWDC 2017, он позволяет вам настраивать существующие модели с помощью ваших собственных данных.Просто используя...Python :[.
- IBM Watson Services: Объявлено в марте 2018 г. Вы можете настроить модели визуального распознавания IBM Watson для распознавания ваших собственных данных.Просто перетащите данные, код не требуется, но вам нужно использовать IBM Cloud, а модели Core ML основаны на Watson API в оболочке.
- Create ML: Объявлено на WWDC 2018. ML с Xcode и Swift! В настоящее время включены только два из семи наборов инструментов для фокуса Turi Create, а также общий классификатор и регрессор, а также таблицы данных. Я думаю, это приманка, которая приведет вас к Turi Create дворец, в котором живет «хорошая собака», а не злая ведьма (логотип Turi Create — собака).
В этом руководстве вы начнете с трюка Create ML: создайте классификатор изображений с графическим интерфейсом, используя изображения изKaggle Cats and Dogs Dataset. Затем вы сравниваете его с примером Turi Create, используя тот же набор данных. Как видите, Turi Create более ручной, но он также более гибкий и совсем не сложный для понимания! Для примера на основе кода вы и код классификатора текста Turi Create будут сравниваться.
Затем я покажу вам, как быстро создать среду для использования Turi Create. Apple даже изменила игровые площадки Xcode, чтобы приблизить его к блокноту Jupyter (ранее известный как блокнот IPython — интерактивный блокнот, поддерживающий более 40 языков программирования), так что среда кода будет более знакомой!Попробуйте, вы будете использовать Turi Create в блокноте Jupyter, чтобы создать модель подобия изображений для того же количества наборов данных о кошках и собаках.
тыМожетБудьте терпеливы и надейтесь, что Apple перенесет остальные функции Turi Create в Create ML, но вы обнаружите, что нетрудно использовать Turi Create напрямую с Create ML в качестве трамплина.Если вам нужна дополнительная информация, у нас есть учебные пособия для вас. использоватьKeras, scikit-learnи Caffe (будет позже).После того как вы ознакомитесь со средой разработки, вы сможете выбрать из множества учебных пособий в области машинного обучения.
Уведомление:Swift for TensorFlowЧто? Create ML — это инструмент ML для пользователей Swift, а Swift for TensorFlow — это язык Swift для пользователей ML — цель проекта — предоставить лучший язык программирования и компилятор.
Начинать
Чтобы следовать этому руководству, вам понадобятся:
- Mac с бета-версией macOS 10.14 Mojave.
- Xcode 10.x beta
Нажмите в начале или в конце статьиСкачать информациюкнопка.starterПапка содержит:
- Pets-100, Pets-1000иPets-Testing: они содержат изображения кошек и собак; вы будете использовать их для обучения и проверки этого классификатора кошек и собак.
- ClassifyingImagesWithVisionAndCoreML: пример программы CoreML от Apple; вы замените в ней модель MobileNet моделью, которую вы обучили в Create ML.
- good-dog.png: Прикрепленное изображение собаки.
- turienv.yaml: вы будете использовать этот файл для создания среды для запуска кода Turi Create.
Создайте классификатор изображений ML
Во-первых, подготовьте свои данные - вы будете использовать для обучения модели классификатора изображений распознавать изображения кошек и собак. Когда вы показываете изображение, оно возвращает метку «Кошка» или «Собака». Чтобы обучить эту модель, вам нужен одинCatпапка иDogПапки. В идеале в этих двух папках должно быть одинаковое количество изображений — если у вас есть 30 изображений кошек и 200 изображений собак, модель будет склонна идентифицировать изображения как собак. Не включайте изображения нескольких животных в то же время.
Сколько изображений необходимо для каждого класса?Не менее 10, но большее количество изображений сделает модель более точной.Kaggle Cats and Dogs DatasetЕсть 12500 изображений для каждого класса в , но вам не нужны все они!Время обучения растет с количеством изображений, удвоение количества изображений также примерно удваивает время обучения.
Чтобы обучить классификатор изображений Create ML, вам нужно дать емуобучающий набор данных- папка, содержащая папки категорий.starterПапка содержит два набора данных, которые я подготовил,Pets-100иPets-1000.
ты будешь тренироватьсяPets-100модель начинается сPets-Testingтест. Затем используйтеPets-1000тренировка сPets-Testingконтрольная работа.
Особый трюк Apple
В Xcode 10 создайте новыйmacOSверсии игровой площадки, затем введите следующий код:
import CreateMLUI
let builder = MLImageClassifierBuilder()
builder.showInLiveView()
Отобразите вспомогательную область редактирования, нажмите кнопку «Выполнить»:
Вы создадите и представите интерактивное представление для обучения и проверки классификатора изображений. Это волшебным образом позволит вам испытать различные наборы данных, потому что важно не то, у кого лучший алгоритм, а то, у кого лучший Алгоритм настолько хорош, что вы можете получить данные Ученые работают над этим, чтобы стать лучше. Но приходят мусорные данные, появляются мусорные модели; большая часть времени и энергии тратится на подбор наборов данных для машинного обучения. Что ж, теперь этот классификатор изображений с графическим интерфейсом поможет вам улучшить свои навыки планирования данных! ЗагружаемыйKaggle Cats and Dogs DatasetИ создайте свой собственный набор данных.После того, как вы увидите мой набор данных, вы можете быть более осторожны при выборе изображений из их кучи.
тягаPets-100папку в представление. Сразу же начался процесс обучения. Через некоторое время в области отладки появилась таблица, показывающаяImages Processed, Elapsed TimeиPercent Complete:
Что здесь происходит? Это называетсяпередача обучения.Основная модель ——VisionFeaturePrint_Screen, который поддерживает фреймворк Vision, предварительно обученный массивным наборам данных и способный распознавать большое количество различных типов изображений.Особенности, и как комбинировать эти функции для классификации изображений. Таким образом, время обучения для вашего набора данных — это фактически время для извлечения около 1000 функций. Эти функции могут включать формы и текстуры низкого уровня, а также формы высокого уровня, такие как уши. расстояние между глазами, форма морды... Тогда на обучениелогистическая регрессиямодель для разделения вашего изображения на две категории. Это похоже на разделение линии на отдельные точки, только в масштабе 1000 вместо 2. Но это все еще очень быстро: у меня есть все здесь1m 15sизвлечение признаков,0.177886 secondsВыполните обучение и примените логистическую регрессию.
Перенос обучения будет работать успешно только в том случае, если функции вашего набора данных очень похожи на функции набора данных, на которых вы обучали модель.Модель, предварительно обученная в ImageNet — обученная на большом количестве реальных фотографий — может не переноситься в карандашные рисунки или микрофотографии.
Вы можете просмотреть еще две интересные статьи о возможностях Google Brain/Research:
Примечание. Я запускаю Create ML на MacBook начала 2016 года с процессором 1,1 ГГц. Время может быть быстрее, особенно если у вас последняя версия Mac или более новые версии macOS, Xcode и т. д.
На MacBook Pro 2017 года с процессором i7 2,9 ГГц время извлечения функций сократилось до 11,27 с, а обучение заняло всего 0,154341 с.
Точность обучения и проверки
Когда обучение завершено, в представлении отображаетсяTrainingиValidationПоказатели точности и сведения об области отладки.
Так что жеПроверка?Что означает значение точности?Training accuracyПросто: обучение включает в себя угадывание веса каждой функции. Поскольку вы помечаете изображение как «Кошка» или «Собака», алгоритм обучения может проверить свой ответ и рассчитать процент правильности. Затем сообщить правильную или неправильную информацию для следующей итерации. для уточнения весов.Validation accuracyТакже похоже: 10% случайным образом выбираются из набора данных и помещаются в данные проверки перед началом обучения.Как и в обучающем наборе, функции извлекаются, а ответы рассчитываются и взвешиваются.Но результаты не используются внепосредственныйпересчитывать веса, чтобы не дать моделипереоснащение- Слишком много внимания уделяется неважным функциям, таким как цвет фона или освещение. Если точность проверки и точность обучения сильно различаются, алгоритм автоматически настраивается. Таким образом, проверочное изображениевыберите, что влияет как на точность проверки, так и на точность обучения. Turi Create позволяет предоставить фиксированный набор данных проверки, если вы создали аналогичный параметр функции для своих тестовых данных. И ваш набор тестовых данных является репрезентативным для пользователя и приложения для предоставленных фотографий.
Оценка
Реальный вопрос: как модель классифицирует изображения, на которых она не обучалась?
Просмотр предлагает вамПеретащите изображение, чтобы начать тест: тягаPets-TestingПапка в поле зрения. Вскоре она отобразится в области отладки.ОценкаТочность и ее детали:
На изображении выше я нажал кнопку «Показать», чтобы проверить уровень достоверности: модель на 100% уверена, что это собака! качество.
Улучшить точность
Набор обучающих данных Pets-100 содержит всего 50 фотографий на класс. Create ML позволяет легко пробовать разные наборы данных, чтобы увидеть, как большее количество данных повышает точность.
Нажмите на игровую площадкуstopкнопку, то когда она станетrunНажмите еще раз, чтобы загрузить новое представление, готовое к приему данных обучения.
Повышение точности обучения
- добавить классификатор изображенийМаксимальное количество итераций.(Эта опция недоступна в первой бета-версии Xcode, но ее можно использовать во второй бета-версии)
- Используйте разные алгоритмы для текстовых классификаторов.
- Используйте разные модели для общих классификаторов или регрессоров.
Повышение точности проверки
- Увеличьте объем данных: для классификатора изображений вы можете добавить параметры к данным изображения, такие как отражение, вращение, сдвиг или изменение экспозиции и т. д. См.Иллюстрация увеличения данных от Apple:
- Возможное переоснащение:уменьшатьМаксимальное количество итераций, Вам, вероятно, не нужно беспокоиться об этом, так как мое обучение работает толькоменьше, чемУдовлетворился 10 раз и остановился.
Повышение точности оценки
Убедитесь, что ваши обучающие данные достаточно разнообразны, чтобы соответствовать вашим тестовым данным, и что два набора данных достаточно похожи на данные изображения, загруженные пользователем в ваше приложение.
вернуться на детскую площадку
Обучение на 1000 изображений дает 100% точность обучения, но только 96% точность проверки, мы можем запустить его еще несколько раз и иногда получить точность проверки 99%.
Увеличить максимальное число итераций?
Точность этого примера программы довольно высока — базовая модель, вероятно, уже знает о кошках и собаках, однако, если вы тренируетесь на разных типах, вы получите очень низкуюточность обучения, вы можете попробоватьМаксимальное количество итерацийУстановить как20.
Остановите и перезапустите игровую площадку, затем нажмите символ расширения в правом верхнем углу, измените 10 на 20 и нажмитеВходить:
Нажмите символ расширения, чтобы закрыть настройки, затем откройте «Проверить один раз», чтобы убедиться, что это все еще 20.
Примечание. В Create ML и Turi CreateСоздайтеэто проблема - вы не можете обучить модель, не создавая ее. Чтобы увеличить количество итераций, вы должны начать с нуля и извлечь функции, как они были. Графический интерфейс Create ML не предоставляет возможность сохранять функции. те более ручные фреймворки, такие как Keras, могут создавать, компилировать, а затем настраивать модель, поэтому операция настройки влияет только на последующие операции.На самом деле это возможно, в соответствии с исходным кодом Turi Create, вынуть низкоуровневый код который извлекает характерные точки изображения - эта часть наиболее полезна в большинстве случаев. Затем вы можете сохранить извлеченные функции и перезагрузить их, когда захотите больше итераций! Надеюсь, это заинтересует вас в Turi Create и Keras!
Используйте классификатор изображений
Вот еще один специальный трюк Apple.Графический интерфейс Create ML выводит модель Core ML, затем перетаскивает вашу модель прямо в старый проект Core ML, просто измените код вслово, и это работает!
Щелкните символ расширения в правом верхнем углу, и вы увидите другой элемент настройки.Щелкните текст и измените его наPetsClassifier.ИзменятьWhereместоположениеstarterпапку, затем нажмитеsave:
Открытымstarterв папкеClassifyingImagesWithVisionAndCoreMLПроект. Это проект Apple 2017 года, я обновил его до Swift 4.2 и исправил проблему с чтением фотографий. Этот проект использует модель MobileNet.ml и имеет размер 17,1 МБ:
тягаPetsClassifier.mlmodelв область навигации проекта. Его размер составляет 17 КБ:
Искать элементы вMobileNet:
let model = try VNCoreMLModel(for: PetsClassifier().model)
Создайте и запустите. Нажмите на значок камеры, чтобы открыть окно выбора фотографий, а затем перетащите фотографии собак и кошек в окно выбора.Photosсередина:
Turi Создать классификатор изображений
Этот код исходит изTuri Create image classifier example, используя тот же набор данных — полный набор данных из 25 000 изображений:
import turicreate as tc
# 1. Load images (Note: you can ignore 'Not a JPEG file' errors)
data = tc.image_analysis.load_images('PetImages', with_path=True)
# 2. From the path-name, create a label column
data['label'] = data['path'].apply(lambda path: 'dog' if '/Dog' in path else 'cat')
# Note: If you have more than two classes, extract the folder names like this:
# train_data["label"] = train_data["path"].apply(lambda path: os.path.basename(os.path.split(path)[0]))
# 3. Make a train-test split
train_data, test_data = data.random_split(0.8)
# 4. Create the model
model = tc.image_classifier.create(train_data, target='label')
# 5. Save predictions to an SArray
predictions = model.predict(test_data)
# 6. Evaluate the model and save the results into a dictionary
metrics = model.evaluate(test_data)
print(metrics['accuracy'])
# 7. Save the model for later use in Turi Create
model.save('mymodel.model')
# 8. Export for use in Core ML
model.export_coreml('MyCustomImageClassifier.mlmodel')
Это намного больше кода, чем вы написали бы на игровой площадке, но вскоре вы увидите, что он похож на код классификатора текста Create ML.
Подобно тому, что вы делали в Create ML:
- Шаги с 1 по 4 соответствуют созданию папок обучения и тестирования, а затем перетаскиванию папки обучения в представление.Turi Create должен извлечь метки классов из пути к изображению, но шаг 3 случайным образом назначает 20% набора данных.test_data, избавляя вас от необходимости создавать папки для обучения и тестирования и получать разные наборы тестовых данных при каждом запуске кода.
Примечание: на шаге 2 извлечение только двух меток класса является особым случаем. Я добавил комментарий к коду, чтобы показать распространенный случай. Во-первых,os.path.split()Разделите путь на две части: имя файла (например, 42.jpg) и другую часть.os.path.basename()это имя последней папки, которая также является именем класса.
- Шаги 5 и 6 соответствуют перетаскиванию тестовой папки в представление Блокноты Jupyter можно легко отобразить как представление Create ML.predictionsМассивы, Вы также можете фильтровать данные, чтобы найти ложные классификации, не перебирая весь набор тестовых изображений.
- Шаг 7, сохраните модель для использования, вы можете перезагрузить ее и запустить на другом тестовом наборе данных.
- Шаг 8, вывод модели Core ML.
Итак, классификация изображений Turi Create более ручная, чем Create ML, но более гибкая.turicreate.create()изДокументацияПеречислены некоторые необязательные параметры. Вы можете указать базовыйmodelЧтобы соответствовать Create ML, обратите внимание на размер модели Core ML!Если вы создали реальные тестовые данные и не хотите, чтобы модель использовала случайно выбранные тестовые данные из ваших обучающих данных, вы также можете установить фиксированныйvalidation_set.
Классификация изображений в Create ML — очень конкретный пример:MLImageClassifierBuilderГрафический интерфейс ML делает ненужным написание кода, но в следующей главе вы увидите, что другие модели Create ML по-прежнему требуют много кода.
классификатор текста
Теперь давайте сравним, как Create ML и Turi Create обучают и тестируют модели классификации текста.Модель Turi Create должна преобразовывать тестовый текст в набор слов, тогда как в модели Create ML это преобразование встроено непосредственно в модель Create ML. В модели ML вы можете напрямую получить тестовую текстовую папку.
Create ML
НижеПример создания текстового классификатора ML:
import CreateML
// 1. Load data from a JSON file
let data = try? MLDataTable(contentsOf: URL(fileURLWithPath: "<#/path/to/read/data.json#>"))
// 2. Make a train-test split
let (trainingData, testingData) = data.randomSplit(by: 0.8, seed: 5)
// 3. Create the model
let sentimentClassifier = try? MLTextClassifier(trainingData: trainingData,
textColumn: "text", labelColumn: "label")
// 4. Training accuracy as a percentage
let trainingAccuracy = (1.0 - sentimentClassifier.trainingMetrics.classificationError) * 100
// 5. Validation accuracy as a percentage
let validationAccuracy = (1.0 - sentimentClassifier.validationMetrics.classificationError) * 100
// 6. Evaluation accuracy as a percentage
let evaluationMetrics = sentimentClassifier.evaluation(on: testingData)
let evaluationAccuracy = (1.0 - evaluationMetrics.classificationError) * 100
// 7. Add metadata
let metadata = MLModelMetadata(author: "John Appleseed",
shortDescription: "A model trained to classify movie review sentiment", version: "1.0")
// 8. Export for use in Core ML
try? sentimentClassifier.write(to: URL(fileURLWithPath: "<#/path/to/save/SentimentClassifier.mlmodel#>"),
metadata: metadata)
- Шаг 1, загрузите столбцы text и label в таблицу, где значений label три:positive, negativeиneutral.существуетWWDC 2018 Session 703 video, показывает другой способ загрузки отдельно сохраненного имени какpositiveиnegativeМетод для текстовых файлов аналогичен методу загрузки изображения в классификатор изображений, но применим только к Create ML, не применим к Turi Create.
Из сессии 703 WWDC 2018ДругаяСпособ загрузки текстовых данных этикетки:
let trainDirectory = URL(fileURLWithPath: “/Users/createml/Desktop/train”)
let testDirectory = URL(fileURLWithPath: “/Users/createml/Desktop/test”)
// Create Model
let classifier = try MLTextClassifier(trainingData: .labeledDirectories(at: trainDirectory))
Вернемся к коду классификатора основного текста:
- Шаг 2 и Turi Createrandom_split()то же самое, случайным образом назначив 20% данныхtestingData.по желаниюseedПараметр используется для установки начального числа для генератора случайных чисел.
- Шаг 3 и Turi Createsentence_classifier.create()сделать то же самое в .
- Шаги 4-6, рассчитайте показатели точности обучения, проверки и оценки.
- Шаги 7 и 8 выводят модель Core ML с метаданными.
Turi Create
Эти коды из нашего учебникаNatural Language Processing on iOS with Turi CreateОн обучил классификатор предложений с набором из 10 поэтов предсказывать автора тестового текста.
import turicreate as tc
# 1. Load data from a JSON file
data = tc.SFrame.read_json('corpus.json', orient='records')
# 2. Create the model
model = tc.sentence_classifier.create(data, 'author', features=['text'])
# 3. Export for use in Core ML
model.export_coreml('Poets.mlmodel')
- Шаг 1, как и в случае с Create ML, вы можете загрузить данные из файла JSON или CSV.
- Шаг 2, обучите модель.
- Шаг 3, вывод модели Core ML.
Учебный материал Turi Create включает приложение для iOS, в котором можно протестировать модель, вставив текст в текстовое представление.wordCounts(text:)функция, которая действует какTuri Create text classification exampleв концеbag of wordsфункция.
Текстовый классификатор Turi Create ожидает, что ввод будет словарем слов и количеством слов, а текстовый классификатор Create ML принимает текстовый ввод напрямую и создает свой собственный набор слов.
Turi Создать сходство изображений
Сделайте глубокий вдох — вы погрузились в приключение Turi Create!
В Turi Create есть пять других наборов инструментов, ориентированных на задачи, которые в настоящее время не включены в Create ML:
- Рекомендуемая система
- сходство изображений
- обнаружение объекта
- передача стиля
- классификация деятельности
Картинки кошек и собак выглядят очень интересно, поэтому вы будете обучать модель находить похожие картинки.
Да, вам нужно написать немного Python прямо сейчас. Блокноты Jupyter покажутся вам знакомыми как среда разработки — это очень похоже на игровую площадку Xcode, но работает в вашем браузере.
Самый простой способ - использоватьAnaconda- Он был создан сообществом ML для организации всех версий Python и ML.средыуправлять ими.
Anaconda & Notebooks
скачатьPython 3.6 version of Anaconda for macOS,В твоемhome directoryУстановите его в, а не в корневой каталог:
Примечание. Установка Anaconda и создание среды Tuti Create займет несколько минут. Пока вы ждете, ознакомьтесь с постом Майкла Кеннеди за ноябрь 2014 г.Comparison of Python and Swift SyntaxОпубликовано Джейсоном Браунли в мае 2016 г.Crash Course in Python for Machine Learning DevelopersСтатья Браунли содержит примеры использования библиотек обработки данных NumPy, Matplotlib и Pandas.Самая большая разница между синтаксисом Swift и Python заключается в том, что при определении замыканий, функций и классов используйте отступ вместо{...} .
Создать Turi Создать среду
Среды можно создавать с помощью графического интерфейса Anaconda Navigator или команд терминала для запуска кода Turi Create.
GUI:ОткрытымAnaconda Navigator, переключить наEnvironmentsВкладки и импортstarter/turienv.yaml- Нажмите на значок папки и вFinderЗадайте расположение файла в .Anaconda Navigator заполнит имя среды из файла:
conda env create -f <drag starter/turienv.yaml file from Finder>
Запустить блокнот Jupyter
существуетturienvсреду, используйте команды графического интерфейса или терминала для запуска ноутбуков Jupyter.
Первый вFinder, создайте локальную папку с именемnotebooks.
Если вы используете последнюю версию Mac, загрузите и разархивируйтеKaggle Cats and Dogs Dataset, затем переместитеPetImagesпапку вnotebooks, так что вы можете легко загрузить его в блокнот.
Полный набор данных Kaggle содержит 25 000 изображений, и его обработка на старом Mac занимает много времени. Вы также можете использоватьPets-1000файл или создайте свой собственный набор данных.
GUI: если вы используетеAnaconda Navigator, переключить наHomeвкладка, нажмитеApplications onВверхturienv, затем нажмитеjupyter Launch:
source activate turienv
Приглашение командной строки теперь имеет(turienv)Пуск Введите следующую команду, чтобыnotebooksЗапустите сервер Jupyter в папке и откройте окно браузера:
jupyter notebook <drag notebooks folder from the Finder>
Обучите модель
Создайте новый блокнот Python 3.6:
Примечание. Этот пример аналогичен примеру Apple.Image similarityПример тот же, только с использованием набора данных о кошках и собаках.
В записной книжке есть пустая ячейка. Введите следующую строку в ячейку и нажмитеShift-Enterдля запуска ячейки:
import turicreate as tc
Примечание. Shift-Enter также работает на игровой площадке Xcode, если вы просто хотите запустить фрагмент кода.
Появилась еще одна новая ячейка.Введите следующее и запустите:
reference_data = tc.image_analysis.load_images('./PetImages')
reference_data = reference_data.add_row_number()
reference_data.save('./kaggle-pets.sframe')
Теперь вы загружаете изображение в таблицу, добавляете номера строк в таблицу и сохраняете ее для будущего использования.JPEG decode failureИнформация.
Примечание. При вводе кода Python используйтеtabключ для автозаполнения.
В следующей ячейке выполните следующую инструкцию, чтобы получить данные:
reference_data.explore()
Откроется новое окно со столбцами идентификатора, пути и изображения. Наведите курсор на строку, чтобы отобразить изображение:
Затем выполните следующую инструкцию:
model = tc.image_similarity.create(reference_data)
Это займет некоторое время - в[ * ]показывает, что он запущен. Пока вы ждете, прочтитенеконтролируемое обучениеБар.
Примечание. Если вам нужно вручную остановить ячейку перед завершением, щелкнитеStopкнопка (на панели инструментовRunследующий за).PetImagesудалить изображение из , или просто загрузитьPets-1000.Я бегал на своем MacBook Pro 2015 года, вышел пообедать и вернулся за 90 минут до того, как он закончил работать.
неконтролируемое обучение
Передача данных метки в классификатор изображений позволяет ему измерить точность, обнаружив разницу между его собственными прогнозами и метками.контролируемое обучение.
Однако иногда, даже если вы предоставляете тренеру сходства изображений тот же набор меток, он не использует эти метки: модель используетнеконтролируемое обучение, Базовая модель просматривает очень большое количество изображений и учится, какие комбинации пикселей составляютОсобенности, можно использовать длякластер"похожие" изображения. Как и в случае с классификаторами изображений, большая часть времени обучения тратится на извлечение признаков из вашего набора данных. Затем выполняется "грубая сила"ближайшие соседиОбучение модели: для каждого изображения вычисляется егорасстояние, а остальные изображения отсортируйте по радиусу, затем снова сравните с извлеченными характерными точками, этот шаг будет очень быстрым.
модель запроса
Когда модель будет готова, выполните следующие строки:
query_results = model.query(reference_data[0:10], k=10)
query_results.head()
Таким образом, вы включите 10reference_dataМассив изображений передается, вычисляется сходство 10 изображений, а затем отображаетсяquery_resultsПервые 10 строк .
Допустим, вы хотите увидеть похожее изображение для 10-го изображения. Сначала посмотрите, что это такое:
reference_data[9]['image'].show()
Итак, запустите эти несколько строк кода:
similar_rows = query_results[query_results['query_label'] == 9]['reference_label']
reference_data.filter_by(similar_rows, 'id').explore()
Поздравляем! Вы воспользовалисьPythonСоздана модель сходства изображений! Ваш Mac тоже не взорвался. Надеюсь, вы также попробуете запустить другие примеры Turi Create на своих собственных данных.
закрытие
Выйдите из окна браузера Jupyter.
В окне терминала при работающем сервере jupyter нажмитеControl-C-Cдля остановки сервера.
Если ваше приглашение командной строки(turienv)Запустился, введите следующую команду для выхода (exit):
source deactivate
Если вы действительно не хотите больше использовать Anaconda, введите следующую команду:
rm -rf ~/anaconda3
Тогда как это сделать?
Полная версия записной книжки Turi Create и проекта iOS включены в документацию к этой статье.finishedпапка Доступна для скачивания в начале или в конце.
Теперь, когда вы научились экспериментировать с наборами данных в Create ML, надеюсь, вы продолжите изучение Turi Create.
проводить исследованияCreate MLи его официальную документацию, также найдите время, чтобы просмотретьTuri Create User Guide, даже если вы не хотите использовать Python.How it worksВ документации предоставлено много материала, и никаких эзотерических математических знаний не требуется.Чтобы узнать больше, обратитесь к их академическим ссылкам на цитаты.
Ниже приведены некоторые ресурсы для продолжения обучения:
наш учебник
Эта статья является последней в нашей серии руководств по машинному обучению. Другие включают:
- Core ML and Vision: Machine Learning in iOS 11 Tutorial
- Beginning Machine Learning with Keras & Core ML
- Beginning Machine Learning with scikit-learn
- IBM Watson Services for Core ML Tutorial
- Natural Language Processing on iOS with Turi Create
- кафе (скоро).
машинное обучение
- Kaggle— это набор данных, предоставленный участниками, который обычно используется с записными книжками для анализа и визуализации данных. Он запускает соревнование по прогнозированию моделей, как показано по ссылке ниже.
- Machine Learning Zero-to-Hero: Everything you need in order to compete on Kaggle for the first time, step-by-step!
Надеюсь, вам понравился этот учебник по Create ML, если у вас есть какие-либо вопросы или комментарии, пожалуйста, оставьте комментарий ниже.Особенно не забудьте рассказать нам, что вы делаете с Create ML и Turi Create!
эта статьяСкачать