Введение
TensorFlow — это популярная сквозная платформа с открытым исходным кодом для разработки и развертывания приложений машинного обучения с использованием множества инструментов и библиотек, входящих в ее состав. Использование Qarnot для обучения и получения прогнозов для вашей модели TensorFlow — простая задача. Вот краткое пошаговое руководство, которое проведет вас через различные шаги, как это сделать, так что следуйте!
Предпосылки
Прежде чем начать расчет с помощью Python SDK, необходимо выполнить несколько шагов:
Примечание: в дополнение к Python SDK Qarnot предоставляет SDK C# и Node.js и Командную строку.
Прецедент
Этот тестовый пример продемонстрирует, как обучать классификатор изображений собак и кошек на основе предварительно обученной модели и делать прогнозы с использованием пулов Карнота. Необходимые входные файлы, необходимые для этого урока, можно скачать здесь.
Запуск тестового случая
После того, как вы настроили свою рабочую среду, вы можете начать с первого шага: обучения классификатора изображений собак и кошек. Обязательно скопируйте в скрипт свой токен аутентификации (вместо <<<MY_SECRET_TOKEN>>>
), чтобы можно было запустить задачу на Qarnot.
Обучение классификатора изображений
Далее вам нужно перенести свои локальные данные в корзины на Qarnot. Для этого скопируйте следующий код в скрипт Python и запустите python3 sync_bucket.py
из своего терминала.
#!/usr/bin/env python3 # Import the Qarnot SDK import qarnot # Connect to the Qarnot platform conn=qarnot.connection.Connection(client_token='<<<MY_SECRET_TOKEN>>>') # Create a bucket for the scripts that will run once the task starts bucket = conn.create_bucket("tensorflow-in-scripts") bucket.sync_directory("buckets/scripts") # Create a bucket for the pretrained model bucket = conn.create_bucket("tensorflow-in-pretrained_model") bucket.sync_directory("buckets/pretrained_model") # Create a bucket for the training images bucket = conn.create_bucket("tensorflow-in-learn") bucket.sync_directory("buckets/learn") # Create a bucket for the images we want to label bucket = conn.create_bucket("tensorflow-in-dogscats-small") bucket.sync_directory("buckets/dogscats-small")
После того, как передача будет завершена, вы должны увидеть свои вновь созданные сегменты на своей консоли, и вы сможете проверить изображения, которые вы только что загрузили! Ниже приведен пример входного изображения кошки.
Теперь вы готовы обучить свой классификатор собак и кошек на Qarnot, скопировав следующий код в скрипт Python и запустив python3 qlearn.py &
со своего терминала.
#!/usr/bin/env python3 # Import the Qarnot SDK import qarnot # Connect to the Qarnot Platform conn = qarnot.Connection(client_token='<<<MY_SECRET_TOKEN>>>') # Create a task task = conn.create_task("Hello World - Tensorflow - Train", "docker-batch", 1) # Retrieve the created input buckets task.resources = [ conn.retrieve_bucket("tensorflow-in-pretrained_model"), conn.retrieve_bucket("tensorflow-in-scripts"), conn.retrieve_bucket("tensorflow-in-learn") ] # Create an output bucket task.results = conn.create_bucket("tensorflow-out-model") # Give parameters regarding the Docker image to be used task.constants["DOCKER_REPO"] = "qarnotlab/tensorflow" task.constants["DOCKER_TAG"] = "1.12.0" task.constants["DOCKER_CMD"] = "bash train.sh animals/" # Submit the task task.run(output_dir='model')
Результаты обучения
В любой момент вы можете следить за статусом вашей задачи на вашей Консоли. После завершения обучения задача должна перейти в состояние Успешно с зеленым цветом.
Затем вы можете проверить свой новый обученный классификатор в выходной корзине tensorflow-out-model
.
Разметка изображений кошек и собак
Теперь, когда вы переобучили модель для классификации изображений собак и кошек, пришло время пометить ее. Для этого это будет сделано в пуле. Чтобы запустить задачу классификации, скопируйте следующий код в скрипт Python и запустите python3 qlabel_pool.py &
из своего терминала.
#!/usr/bin/env python3 # Import the Qarnot SDK import qarnot # Connect to the Qarnot Platform conn = qarnot.Connection(client_token='<<<MY_SECRET_TOKEN>>>') # Create a task task = conn.create_task("Hello World - Tensorflow - Train", "docker-batch", 1) # Retrieve the created input buckets task.resources = [ conn.retrieve_bucket("tensorflow-in-pretrained_model"), conn.retrieve_bucket("tensorflow-in-scripts"), conn.retrieve_bucket("tensorflow-in-learn") ] # Create an output bucket task.results = conn.create_bucket("tensorflow-out-model") # Give parameters regarding the Docker image to be used task.constants["DOCKER_REPO"] = "qarnotlab/tensorflow" task.constants["DOCKER_TAG"] = "1.12.0" task.constants["DOCKER_CMD"] = "bash train.sh animals/" # Submit the task task.run(output_dir='model')
Приведенный выше сценарий запустит пул, который выделяет 10 серверов, и запустит задачу со 100 вычислительными экземплярами, каждый экземпляр будет помечать одно из 100 изображений, переданных вами в корзину tensorflow-in-dogscats-small
. Когда задача запущена, вы можете следить за ее ходом в консоли и видеть статус каждого экземпляра в визуализаторе экземпляров слева.
Маркировка результатов
После завершения задачи вы можете проверить результаты в сегменте tensorflow-out-sorted-pool
в консоли и просмотреть различные изображения, помеченные вашей моделью.
Идти дальше
Если вы ищете дополнительные руководства Qarnot по машинному обучению, загляните в наш блог или наш веб-сайт.