Как бесплатно запустить среду глубокого обучения Python в облаке?

Google глубокое обучение Python Linux

Я хочу запустить TuriCreate, но у меня нет компьютера Apple или опыта работы с Linux, что мне делать? С помощью этого облачного приложения вы можете установить среду выполнения Python без установки. Не нужно тратить ни копейки, с высокопроизводительным графическим процессором легко играть в глубокое обучение.

Болевые точки

"Как распознавать изображения с помощью Python и глубоких нейронных сетей?«После того, как статья была опубликована, она получила много комментариев от читателей. Все заинтересованы в недостижимом в прошлом глубоком нейросетевом распознавании изображений, и все они планируют сделать это самостоятельно и попробовать простой в использовании фреймворк TuriCreate.

Некоторые читатели очень счастливы, попробовав его.

Некоторые читатели столкнулись с проблемами:

Я здесь"Как найти примерные картинки с помощью Python и глубоких нейронных сетей?"В статье я ответил на этот вопрос - TuriCreate в настоящее время поддерживает ограниченные операционные системы, включая только следующие опции:

Если ваша операционная система — Windows 7 и ниже, TuriCreate в настоящее время не поддерживается.

Есть два решения:

Сначала обновитесь до Windows 10 и используйте WSL.

Второй — использовать виртуальную машину для установки Linux.

Эти два решения хороши?

фигово.

Все они никак.

потому что это требует от пользователейLinuxэта новая система.

Для ИТ-специалистов Linux действительно хорош.

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

Во-вторых, он гибкий. От ядра системы до различных приложений, вы можете настроить его по своему усмотрению. В отличие от Windows или macOS, независимо от того, используете ли вы функции чтения на испанском языке и преобразования текста в речь, все они установлены для вас по умолчанию;

В-третьих, он прочный. Хотя Linux бесплатен, он был создан с использованием UNIX в качестве эталонного объекта и вполне способен работать на больших серверах, которые не выключаются раз в год.

Однако эти преимущества Linux вынесены в основную группу чтения моей рубрики — «Студенты искусств"— Там, это не обязательно хорошо.

Потому что кривая обучения Linux крутая.

Итак, если вы упорно настаиваете на запуске TuriCreate на своем компьютере и не желаете изучать Linux, возможно, вам придется купить Macbook.

Но кто сказал, что исполняемый код должен быть на вашей собственной машине?

облако

Вы можете установить TuriCreate в облаке, если это облако размещено в Linux.

Вы можете разозлиться и подумать, что я шучу — если я знаю Linux, я просто установлю его локально! Я даже не знаю, как использовать локальный Linux, так что позвольте мне использовать Linux удаленно? ! что ты имеешь в виду?

Не волнуйся, просто послушай меня.

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

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

Что еще хуже, такой арендованный облачный хост либо очень слаб, либо дорог.

Хост, который стоит десятки долларов в месяц, часто имеет только одно ядро ​​ЦП. Запускаете проект глубокого обучения? Боюсь, у вас еще нет результатов, чужие бумаги разосланы.

Есть ли высокопроизводительный хост? Есть конечно.

Например, Amazon AWS предоставляет на выбор такую ​​конфигурацию, как p2.xlarge. С ним легко выполнять задачи глубокого обучения.

но этоочень дорого.

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

Кроме того, хотя Amazon уже проделал большую подготовку для вас. Все еще требуется некоторая работа от начала использования этого облачного хоста до реального мастерства его использования.

Найдя надежный учебник в Интернете, после многократной практики и постоянной помощи, вы в конечном итоге овладеете следующими навыками:

  • Значение аппаратной конфигурации;
  • Способ оплаты кредитной картой облачной платформы;
  • использование панели управления;
  • Принцип выставления счетов;
  • правила торгов;
  • ограничения на использование инстанса;
  • Выбор типа пользовательского экземпляра;
  • настройка правила безопасности;
  • Использование открытых и закрытых ключей;
  • Зашифрованное соединение ssh;
  • Настройки прав доступа к файлам;
  • разное……

Узнайте, как использовать высококлассные виртуальные хосты AWS с наименьшими затратами, и узнайте, когда следует запускать и останавливать экземпляры. В конце месяца вы почувствуете особое чувство выполненного долга, когда увидите, что сумма на вашем счете такая маленькая.

Вопрос в том, что вы пытались сделать в первую очередь?

Кажется, вы просто планируете использовать сверточную нейронную сеть на TuriCreate, чтобы быстро сделать классификационную модель из фотографий под рукой, верно?

Итак, этобросатьНе правильный путь.

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

Вы должны выбрать облачную платформу, которая имеет следующие характеристики:

Вам не нужно знать Linux, и вам не нужно устанавливать кучу базового программного обеспечения с нуля. Им можно пользоваться после открытия, а нужны какие-то дополнительные функции, и делается это одной командой. Предоставляет высокопроизводительный графический процессор для запуска кода глубокого обучения... желательно бесплатно.

Думаешь, я сплю? Вы не решаетесь разбудить меня быстро?

Это не сон, там действительно есть такая хорошая вещь.

Находить

Облачная рабочая среда, рекомендованная для вас в этой статье, — это Colaboratory, предоставленная Google, в дальнейшем именуемая Colab.

На самом деле этому инструменту уже несколько лет.

Первоначальный выпуск был разработан в сотрудничестве между Google и командой Jupyter. Только недавно его довели до лучшего состояния. проходить черезЭта статья на МедиумеАкция привлекла внимание многих исследователей и учащихся.

Официальное введение:

Colaboratory — это исследовательский инструмент для обучения и исследований в области машинного обучения. Это среда ноутбука Jupyter, для использования которой не требуется никакой настройки.

Пожалуйста, откройте в браузере Google Chromeэта ссылка, вы можете увидеть это «Введение в Colaboratory».

Хотя он выглядит иначе, на самом деле это Jupyter Notebook.

Попробуем запустить операторы в нем.

Обратите внимание, что операторы в этой записной книжке на самом деле в формате Python 2. Но рабочая среда ноутбука по умолчанию — Python 3.

Поэтому, если вы выполните первое предложение напрямую (все еще используя Shift+Enter), будет сообщено об ошибке.

Решение очень простое, откройте вкладку «Исполнитель кода» на верхней панели инструментов.

Выберите «Изменить тип среды выполнения» внизу.

После изменения Python 3 по умолчанию на Python 2 нажмите кнопку «Сохранить» в правом нижнем углу.

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

Блок операторов 2 более интересен. Он напрямую вызывает собственный фреймворк глубокого обучения Google — пакет tensorflow.

Я когда-то писал специально для установки tensorflowруководство. Но здесь у вас вообще не установлен тензорный поток, он действительно работает для вас.

Не только tensorflow, но и многие часто используемые наборы инструментов для анализа данных, такие как numpy, matplotlib, устанавливаются по умолчанию.

Для этих основных инструментов вам не нужно устанавливать, настраивать и управлять ими, просто используйте их.

Мы запускаем последнюю единицу кода.

Смотрите, с выводом изображения проблем нет.

Подключи и играй в области среды программирования! чудесный!

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

Верно.

Но когда вы устанавливаете TuriCreate, ваша ОС Windows его не поддерживает, верно?

Ниже я покажу вам, как запустить TuriCreate с Colab для глубокого обучения.

данные

Я помещаю данные изображения и файлы ipynb, которые необходимо классифицироватьэтот проект на гитхабесередина. Пожалуйста, нажмитеэта ссылкаЗагрузите zip-пакет.

После загрузки извлеките его на локальный жесткий диск.

Как видите, он содержит файл ipynb и каталог изображений.

Содержимое каталога изображений — это то, что выКак найти примерные картинки с помощью Python и глубоких нейронных сетей?«Фотографии Дораэмона и Валл-И, которые были замечены в статье.

Вот фото синего толстяка:

Вот фото ВАЛЛ-И:

Пожалуйста, используйтеБраузер Гугл Хром(В настоящее время Colab не поддерживает другие браузеры) Открытьэта ссылка, откройте свой Google Диск.

Конечно, если у вас еще нет учетной записи Google, вам необходимо зарегистрировать ее и войти в систему, чтобы использовать ее.

Затем перетащите папку, которую вы только что разархивировали, на страницу Google Диска, и система автоматически загрузит ее для вас.

После завершения загрузки откройте папку на Google Диске.

существуетdemo_python_image_classification.ipynbЩелкните файл правой кнопкой мыши. Выберите Открыть с помощью Colaboratory.

Файл ipynb, открытый Colab, показан на рисунке ниже.

Сначала нам нужно определить операционную среду. Нажмите «Изменить» в строке меню и выберите «Настройки блокнота».

Убедитесь, что тип среды выполнения — Python 2, а аппаратный ускоритель — GPU. Если это не так, пожалуйста, измените его. Затем нажмите Сохранить.

Данные доступны, среда настроена. Теперь мы официально запускаем код.

код

Пробуем читать в пакете TuriCreate.

import turicreate as tc

Результатом будет следующая ошибка.

Это нормально.

потому что мы такжеНе установленTuriСоздать.

Разве это не означает, что вам не нужно устанавливать фреймворк глубокого обучения?

Это зависит от того, чья инфраструктура глубокого обучения.

Colab устанавливает Tensorflow по умолчанию, потому что этособственныйРазработан фреймворк для глубокого обучения.

А TuriCreate — это продукт Apple, поэтому нам нужно установить его вручную.

Сложно ли установить вручную?

не будет.

Откройте новую ячейку кода и введите следующую строку оператора:

!pip install turicreate

Вы можете видеть, как Colab кропотливо устанавливает для вас TuriCreate и все его зависимости, поэтому вам не нужно беспокоиться об этом самостоятельно. Установил в одно мгновение.

Мы снова вызываем TuriCreate.

import turicreate as tc

На этот раз выполнение прошло успешно, и больше никаких сообщений об ошибках не поступало.

Следующее, что нам нужно сделать, это заставить Colab читать из нашей папки данных.

Но по умолчанию Colab даже не знает, где находится наша папка с данными — хотя изначально мы открывали файл ipynb из демо-папки Google Диска.

Сначала нам нужно заставить Colab найти корневой каталог Google Диска.

Изначально это был относительно сложный вопрос. Но, к счастью, у нас есть готовый код, который можно использовать.

Пожалуйста, выполните код в ячейке ниже. Не беспокойтесь, если вы не понимаете. из-за тебяРегулировка не требуетсякакое-либо утверждение в нем.

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

В начале выполнения вы увидите следующий рабочий статус.

Через некоторое время вы обнаружите, что программа останавливается. Дает вам ссылку, по которой вы можете щелкнуть. И поручает вам заполнить полученные результаты в текстовом поле ниже.

Нажмите на ссылку, и вы увидите изображение ниже.

Нажмите на свою учетную запись Google.

Затем вам будет предложено запросить разрешение от Google Cloud SDK.

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

Вернитесь на страницу Colab, вставьте эту длинную строку символов и нажмите Enter.

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

Появилась еще одна ссылка.

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

Затем Google Cloud SDK сделал еще один запрос на разрешение. Примечание и количество последних запрошенных разрешенийРазные.

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

Вставьте обратно, нажмите Enter. На этот раз это наконец сделано.

Что ж, теперь Colab завладел вашим Google Диском. Мы даем корневому каталогу Google Диска имя drive.

!mkdir -p drive
!google-drive-ocamlfuse drive

Затем мы говорим Colab установить наш текущий рабочий каталог в папку demo-python-image-classification-Google-colab-master на Google Диске.

import os
os.chdir("drive/demo-python-image-classification-Google-colab-master/")

Ладно, подготовка окончена, идем дальше.

Нам нужно сообщить TuriCreate, где находится папка с данными изображения.

img_folder = 'image'

Затем мы считываем все файлы изображений в данные фрейма данных.

data = tc.image_analysis.load_images(img_folder, with_path=True)

Здесь вы обнаружите, что скорость чтения относительно низкая. Это действительно проблема, потому что кадр данных TuriCreate SFrame немного акклиматизирован в Colab? Я пока не уверен.

К счастью, общее количество файлов в нашей выборке невелико, что приемлемо.

Наконец закончил читать.

Посмотрим, какие данные содержатся в data.

data

В соответствии с локальным результатом работы Jupyter Notebook, это путь к файлу и информация о размере изображения.

Далее еще размечаем картинку.

В папке Doraemon отметьте его как doraemon, в противном случае отметьте его как walle.

data['label'] = data['path'].apply(lambda path: 'doraemon' if 'doraemon' in path else 'walle')

Взгляните на содержимое фрейма данных.

data

Видно, что метка поставлена ​​успешно.

мы пытаемся использоватьexplore()Функция просматривает фрейм данных данных и видит картинку.

data.explore()

Но, к сожалению, TuriCreate напоминает нам, что эта функция пока поддерживает только macOS.

Не забывайте, сейчас мы используем операционную систему Linux, поэтому ее нельзя использовать в обычном режиме.explore()функция. Тем не менее, это только временно, и он может быть поддержан в один прекрасный день в будущем.

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

Разделите данные на обучающий набор и тестовый набор, и мы используем однородное случайное начальное значение, чтобы гарантировать, что полученные нами результаты могут быть многократно проверены.

train_data, test_data = data.random_split(0.8, seed=2)

Затем мы формально строим и обучаем модель.

model = tc.image_classifier.create(train_data, target='label')

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

что случилось? Как мысленный вопрос, вам остается исследовать и ответить самостоятельно. Небольшой совет для вас: облачное хранилище.

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

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

predictions = model.predict(test_data)

Каков прогноз? мы используемevaluate()функцию для проверки.

metrics = model.evaluate(test_data)
print(metrics['accuracy'])

Результат выглядит следующим образом:

0.935483870968

Посмотрим на прогнозируемые результаты:

predictions
dtype: str
Rows: 31
['doraemon', 'walle', 'walle', 'walle', 'walle', 'walle', 'doraemon', 'doraemon', 'doraemon', 'walle', 'walle', 'walle', 'doraemon', 'doraemon', 'walle', 'doraemon', 'doraemon', 'doraemon', 'doraemon', 'walle', 'walle', 'doraemon', 'doraemon', 'doraemon', 'walle', 'doraemon', 'doraemon', 'doraemon', 'doraemon', 'doraemon', 'walle']

Давайте снова посмотрим на реальную разметку:

test_data['label']
dtype: str
Rows: 31
['walle', 'walle', 'walle', 'walle', 'walle', 'walle', 'doraemon', 'doraemon', 'doraemon', 'doraemon', 'walle', 'walle', 'doraemon', 'doraemon', 'walle', 'doraemon', 'doraemon', 'doraemon', 'doraemon', 'walle', 'walle', 'doraemon', 'doraemon', 'doraemon', 'walle', 'doraemon', 'doraemon', 'doraemon', 'doraemon', 'doraemon', 'walle']

Сравнив их, мы хотим выяснить, где хранятся эти ошибочно предсказанные изображения:

test_data[test_data['label'] != predictions]['path']

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

Прочтите модуль Jupyter Image для отображения изображений.

from IPython.display import Image

Сначала покажем первое изображение:

Image(test_data[test_data['label'] != predictions]['path'][0])

Результат выглядит следующим образом:

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

Однако, интуитивно угадывая, мы обнаружили, что на всей фотографии квадратный ВАЛЛ-И вообще не занимает главного положения. Наоборот, главным героем стал робот с круглой головой и круглым мозгом. Таким образом, к изображению прибавляется относительно серьезный шум.

Посмотрим на другую картинку:

Image(test_data[test_data['label'] != predictions]['path'][1])

Результат таков:

В этой картинке тоже много информации о помехах, и даже Дораэмон сделал пиратский косплей.

Ну вот, наша миграция кода в Colab успешно завершена.

Как видите, нам не нужно устанавливать какие-либо пакеты локально. С помощью всего лишь браузера и папки, загруженной с github, я реализовал (почти) все возможности глубокого обучения TuriCreate.

Это проще, чем установить Linux на виртуальную машину или настроить облачный хост Linux самостоятельно?

резюме

Прочитав эту статью, я надеюсь, вы усвоили следующие моменты знаний:

  • Некоторые платформы глубокого обучения, такие как TuriCreate, зависят от платформы;
  • В дополнение к локальной установке среды разработки можно также использовать облачную платформу;
  • При выборе облачной платформы обратите особое внимание на простоту настройки и экономичность;
  • Как перенести данные и код в Colab через Google Диск;
  • Как установить недостающие пакеты в Colab;
  • Как заставить Colab найти путь к файлу данных.

Также, выбирая инструмент под свои нужды, помните известную цитату профессора маркетинга из Гарварда Теодора Левитта:

На самом деле люди не хотят покупать сверло на 1/4 дюйма. Они просто хотят отверстие 1/4 дюйма.

Эта цитата полезна не только для учащихся и разработчиков.

Для поставщиков продуктов значение, возможно, даже более существенное.

обсуждать

Вы раньше правильно устанавливали TuriCreate? Какую операционную систему ты используешь? Вы пробовали запускать код Python в облаке? Есть ли лучшая среда для запуска облачного кода, чем Colab? Добро пожаловать, чтобы оставить сообщение, поделиться своим опытом и мыслями со всеми, мы обменяемся и обсудим вместе.

Лайк пожалуйста лайк. Вы также можете подписаться на мой публичный аккаунт в WeChat и закрепить его."Юшу Чжилань" (нкваншуйи).

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