Гугл коллаб что это
Как использовать Google Colab
Если вы хотите создать модель машинного обучения, но говорите, что у вас нет компьютера, который может справиться с нагрузкой, Google Colab — это платформа для вас. Даже если у вас есть графический процессор или хороший компьютер, создавать локальную среду с помощью anaconda, устанавливать пакеты и решать проблемы, связанные с установкой, — непростая задача.
Colab Laboratory — это бесплатная среда для ноутбуков Jupyter, предоставляемая Google, где вы можете использовать бесплатные графические процессоры и TPU, которые могут решить все эти проблемы.
Начиная
Открытие ноутбука Jupyter:
При открытии сайта вы увидите всплывающее окно, содержащее следующие вкладки —
EXAMPLES: Contain a number of Jupyter notebooks of various examples.
RECENT: Jupyter notebook you have recently worked with.
GOOGLE DRIVE: Jupyter notebook in your google drive.
GITHUB: You can add Jupyter notebook from your GitHub but you first need to connect Colab with GitHub.
UPLOAD: Upload from your local directory.
В противном случае вы можете щелкнуть Новый ноутбук Python3 или Новый ноутбук Python2 в правом нижнем углу.
Давайте поговорим о том, что здесь отличается.
import tensorflow as tf
Если GPU подключен, он выведет следующее —
В противном случае будет выведено следующее
Что такое Google Colab и кому он нужен?
Блокнот Colab — это бесплатная интерактивная облачная среда для работы с кодом от Google. Принцип у нее такой же, как у остальных онлайн-офисов компании: она позволяет одновременно с коллегами работать с данными. Рассказываем, в чем преимущества Colab и в каких сферах он может быть полезен.
Кому нужен Google Colab
В основе «Колаборатории» — блокнот Jupyter для работы на Python, только с базой на Google Диске, а не на компьютере. Здесь те же ячейки (cells), которые поддерживают текст, формулы, изображения, разметку HTML и не только. То есть можно программировать на Python и не качать кучу библиотек, не перегружать машину и не переживать, что место на харде вот-вот закончится. Единственное условие — нужно иметь Google-аккаунт.
Data Science c нуля
Только реальные знание и навыки, обучение на основе практики и помощь в трудоустройстве. Скидка 5% по промокоду BLOG.
Главная особенность «Колаборатории» — бесплатные мощные графические процессоры GPU и TPU, благодаря которым можно заниматься не только базовой аналитикой данных, но и более сложными исследованиями в области машинного обучения. С тем, что CPU вычисляет часами, GPU или TPU справляются за минуты или даже секунды.
CPU — центральный процессор — мозг компьютера, который выполняет операции с данными. Настолько универсален, что может использоваться почти для всех задач: от записи фотографий на флешку до моделирования физических процессов.
GPU — графический процессор. Обрабатывает данные быстрее, так как задачи выполняет параллельно, а не последовательно, как CPU. Он заточен исключительно под графику, поэтому на нем удобнее работать с изображением и видео, например заниматься 3D-моделированием или монтажом.
TPU — тензорный процессор, разработка Google. Он предназначен для тренировки нейросетей. У этого процессора в разы выше производительность при больших объемах вычислительных задач.
Сами процессоры дорогие, и не каждый может их себе позволить. Google Colaboratory дает возможность бесплатно и непрерывно пользоваться ими на протяжении 12 часов. Будьте внимательны: как только это время истечет, Colab сотрет все данные и придется начинать сначала.
Кроме того, Google отключает блокноты после примерно 30 минут бездействия, чтобы не перегружать процессоры. Система Colab так устроена специально: многие факторы, в том числе время простоя, максимальная активность, общие ограничения на объем памяти иногда динамически меняются. Активным участникам ненадолго могут ограничить доступ к GPU, чтобы дать возможность использовать процессор другим.
Для чего используется Google Colab?
Несколько таких примеров есть в открытом доступе прямо в Colab.
С чего начать?
Все просто: на сайте сервиса сразу появляется экран с доступными блокнотами. Можно создавать новый или загружать уже разработанный Python-код из Google Диска.
Чтобы работать с файлами с личного диска, нужно использовать команду mount():
from google.colab import drive
drive.mount (‘/content/drive’)
После запуска команды Colab предложит ввести код авторизации. Открыв URL, вы должны предоставить сервису доступ к своему аккаунту. Тогда он выдаст код, который нужно будет вставить в поле, нажать ВВОД, и Google Colab подключится к хранилищу.
4 причины использовать Google Colab
Еще одно достоинство Colab — интеграция с GitHub. Он открывает доступ к любому хранилищу, если ему предоставить профиль на сервисе.
Кроме того, для определенных задач можно выбрать подходящий по мощности процессор. Необходимо просто сменить среду выполнения в нужной вкладке
и уже в настройках блокнота выбрать между GPU и TPU.
Не стоит работать с мощным процессором, когда не требуется работать с Big Data. Как мы уже говорили, Colab не любит, когда его ресурсы используются нерационально, поэтому любые перегрузки приведут к внезапному вылету из блокнота на неопределенное время.
Google Colab максимально упростил все процессы: в нем есть и базовые библиотеки (NumPy, scikit-learn, Pandas), и более сложные (вроде Keras, TensorFlow или PyTorch), не нужно ставить программы и среды самостоятельно, можно просто сразу писать код. Если же базовых библиотек недостаточно, всегда можно добавить необходимые с помощью установщика PIP и работать дальше:
В Colab можно делиться работой с другими, оставлять комментарии, редакторские заметки и в целом делать все, что доступно в тех же Google Документах. Поэтому при общем доступе к блокноту все его содержимое будет доступно другим пользователям (текст, код, комментарии, выходные данные). Последнее можно отключить: нужно выбрать «Настройки блокнота» в меню «Изменить».
В появившемся окне поставить галочку «Исключить выходные данные кодовой ячейки при сохранении блокнота», и тогда в блокноте сохранится только код, но не результаты его исполнения.
Вместе с тем открытый доступ к коду и его редактированию — отличная возможность найти интересные разработки по всему миру. У Google есть обширный репозиторий SeedBank, в котором можно исследовать множество блокнотов по Data Science или глубокому обучению, просто кликнув мышкой.
Полный курс по Data Science
Освойте самую перспективную IT-профессию с нуля. Вы получите реальные навыки, поддержку менторов и помощь в трудоустройстве. Скидка 5% по промокоду BLOG.
Облачные среды, похожие на Google Colab
Kaggle Kernels – кроме Python, сервис Kaggle поддерживает R, интегрируется с Google Cloud Storage, BigQuery и AutoML. При этом время пользования процессорами – девять часов, на три меньше, чем у GC.
Azure Notebooks – тоже поддерживает другие языки (R, F#). Сервисы Microsoft Azure также, как и Яндекса, тарифицируются за фактическое время использования.
Дата публикации Jul 8, 2019
Сегодня я перешел на новую машину для своего развития. Несмотря на то, что для приведения в соответствие с новой машиной имеется обучающая кривая, я все еще могу продолжать работать над своими проектами и продолжать свои онлайн-курсы через Google Colab. Это практически так же просто, как войти в мою учетную запись Google, и все готово.
Таким образом, я решил поделиться своими соображениями о том, почему я считаю Google Colab таким полезным и какие команды помогли мне использовать его более эффективно без особых усилий.
Что такое Google Colab?
Google Colab, также известный как Colab Laboratory, представляет собой среду Jupyter, предоставляемую и поддерживаемую Google с возможностью работы с процессорами, графическими процессорами и даже TPU. Это похоже на любую другую записную книжку Jupyter, где мы можем кодировать на Python и писать описания в виде уценки вместе со всеми другими функциями Jupyter и многим другим.
В верхнем разделе содержатся все элементы управления для сохранения записных книжек, обмена записными книжками в репозиториях GitHub, изменения сред выполнения, ячеек запуска и многого другого. Нижний раздел разделен на левую панель, которая содержит оглавление и файлы, а справа находится полностью функционирующая записная книжка.
Почему Google Colab?
Хотя есть много причин, по которым кто-то может предпочесть использовать такой сервис, как Google Colab, для своей работы, вот причины, по которым он работает для меня:
Изучение Google Colab
Теперь, когда мы понимаем, что такое Google Colab и сколько преимуществ он приносит для всех, давайте рассмотрим несколько ключевых важных аспектов. Это, несомненно, помогло мне повысить производительность и сделать свою работу более доступной.
Быстрые сочетания клавиш
Уже есть несколько предопределенных сочетаний клавиш, которые вы можете использовать. Некоторые из самых основных включают Shift + Enter управлять клеткой, Ctrl + M Y преобразовать ячейку в ячейку кода, Ctrl + M M преобразовать ячейку в текстовую ячейку и многое другое. Вы можете получить полный список, перейдя в Tools > Keyboard shortcuts. Вы можете настроить и изменить ярлыки, как вам нравится.
Загрузить наборы данных
Google Colab позволяет нам получить доступ к нашим наборам данных несколькими способами.
Загрузить набор данных
На левой панели выберите Files заголовок. Выберите опцию Upload и выберите файл набора данных.
Тем не менее, файлы удаляются при обновлении во время выполнения, поэтому, если во время выполнения произойдет сбой во время выполнения без выполнения своей задачи, вам придется загрузить их снова.
Загрузить набор данных с Google-диска
Во-вторых, мы можем импортировать наборы данных, которые уже сохранены на диске Google. Это полезно, так как нам не нужно загружать набор данных снова, если ноутбук выходит из строя.
Чтобы подключить диск Google, мы используем следующий код:
Сохранить в GitHub репозиторий
Одной из самых интересных и полезных функций для меня стала интеграция между Google Colab и GitHub. Я предпочитаю работать с ноутбуками Jupyter и сохранять свою работу в определенных репозиториях GitHub в моей учетной записи. Google Colab делает весь процесс простым и удобным в использовании.
От File В меню мы выбираем опцию Save a copy in GitHub. Он загружает экран, чтобы связать нашу учетную запись GitHub, что является одноразовым процессом, после которого нас приветствует другое всплывающее окно. Мы можем выбрать репозиторий, ветвь, имя файла и сообщение о коммите. Это так просто!!
Мы также можем добавить ссылку на эту записную книжку в репозиторий GitHub, чтобы любой, кто просматривает записную книжку на GitHub, мог быстро приступить к работе.
Изменение типа времени выполнения
Если вы когда-либо работали с моделями глубокого обучения, вы бы поняли, какую роль может сыграть графический процессор в многократном увеличении скорости обучения. Google Colab предоставляет возможность добавить GPU / TPU для нашего использования совершенно бесплатно. Это позволяет нам обучать наши модели глубокого обучения гораздо более высокими темпами.
Как только вы нажмете SAVE время выполнения обновится, и вы можете заметить, что в правом верхнем углу, CONNECTING появляется, чтобы показать, что мы сейчас активируем новый тип времени выполнения.
Совместное использование записных книжек Colab
Еще одной важной особенностью является поделиться нашей работой с миром. Опция «Поделиться» в верхнем правом углу Google Colab позволяет нам выбрать список адресов электронной почты, чтобы поделиться с ним записной книжкой или просто получить доступную ссылку.
Вывод
Вам также может понравиться:
Изучение GitHub API
towardsdatascience.com
Глубокое обучение идентификации клеток малярии с использованием CNN на Kaggle
Глубокое обучение в области медицины
towardsdatascience.com
Давайте создадим Статью Рекомендатора, используя LDA
Рекомендовать статьи на основе поискового запроса
towardsdatascience.com
Работа с API с использованием Flask, Flask RESTPlus и Swagger UI
Введение в Flask и Flask-RESTPlus
towardsdatascience.com
Делитесь своими мыслями, идеями и предложениями. Я хотел бы услышать от вас.
Сборка Caffe в Google Colaboratory: бесплатная видеокарта в облаке
Google Colaboratory — это не так давно появившийся облачный сервис, направленный на упрощение исследований в области машинного и глубокого обучения. Используя Colaboratory, можно получить удаленный доступ к машине с подключенной видеокартой, причем совершенно бесплатно, что сильно упрощает жизнь, когда приходится обучать глубокие нейросети. Можно сказать, что она является некоторым аналогом гугл-документов для Jupyter Notebook.
Весь код доступен в моем Colaboratory Notebook.
Коротко о Colaboratory
В Colaboratory можно использовать GPU, а именно Tesla K80. Для этого нужно подключить ее в настройках: RuntimeChange runtime typeHardware accelerator. Стоит заметить, что GPU не всегда доступны, и тогда Colaboratory предложит запустить машину без нее.
Сборка SSD-Caffe
Я хотел попробовать Single Shot Detector (SSD), а именно его Caffe реализацию в Google Colaboratory, но для этого проект нужно было собрать из исходников.
Кстати, если вам подойдёт любая версия Caffe, есть способ намного проще (это даже работает, хотя запускать что-либо я не пробовал):
Сборка SSD-Caffe из исходников — это довольно длинный квест из нескольких шагов, пройти который можно только при помощи костылей.
Шаг 1: установка зависимостей
И это сработало. Осталось только загрузить зависимости:
Шаг 2: нужен другой компилятор
Шаг 3: придётся собрать boost
Если попытаться собрать Caffe на этом этапе, проблемы возникнут при попытке подключить boost, поскольку он собран другим компилятором, так что его исходники придётся скачать и тоже собрать с помощью g++-5 (подробнее на сайте boost):
Шаг 4: настройка Makefile
Клонируем Caffe с GitHub:
И меняем необходимые поля в Makefile.config — я изменил путь к CUDA, поменял опцию BLAS, поменял версию OpenCV на третью, добавил Python layer, а также добавил все пути к библиотекам, которые установлены, но почему-то не нашлись (всё это удобно сделать с помощью Python):
Теперь, собственно, можно собрать Caffe:
Последние две строки добавляют пути библиотек, а именно boost и Caffe.
Теперь Caffe можно использовать (нужно только указать к ней путь в PYTHONPATH):
Чтобы проверить работоспособность, я протестировал проект Mobilenet-SSD: код также есть в моем Colaboratory Notebook.
В частности, я замерял время предсказания для одной картинки, и ускорение на GPU составило примерно 3.8.
Бонус: несколько полезных приёмов
По Google Colaboratory есть отличный туториал на Medium. Также в самой Colaboratory есть файлы с примерами почти всего, что может понадобиться.
Монтировать Гугл-диск в файловую систему виртуальной машины:
Этот код вернёт ссылку и выдаст окно ввода. Нужно перейти по ссылке, скопировать код и ввести его в окно. Мне почему-то приходится делать это два раза. Дальше:
После этого можно использовать свой Гугл-диск как обычный каталог. Кроме того, все изменения в этом каталоге автоматически синхронизируются с Гугл-диском.
Сменить рабочий каталог:
Стереть все изменения и перезапустить машину:
Загрузить файл на локальную машину:
Получить словарь из файлов, загруженных на Гугл-диск:
Приглушить вывод команды терминала (перенаправить в переменную):
В целом, Google Colaboratory предоставляет неплохую возможность производить обучение нейросетей в облаке. Правда, этого может быть недостаточно для совсем больших сеток. Другой плюс — это возможность запускать код независимо от локальной операционной системы (что хорошо для воспроизводимости), а также совместно работать над одним проектом. В качестве подвоха — GPU может быть недоступна, в том числе надолго.
Молчание вентиляторов. Google Colab, Javascript и TensorflowJS
Google Colab — это бесплатный облачный сервис на основе Jupyter Notebook. Google Colab предоставляет всё необходимое для машинного обучения прямо в браузере, даёт бесплатный доступ к невероятно быстрым GPU и TPU. Заранее предупрежу, что у него есть некоторые ограничения, поэтому вы не сможете использовать его для production.
С помощью Google Colab вы можете легко обучить свою модель за считанные секунды. Он поддерживает Python (2/3) из коробки, так что всё должно быть хорошо, верно?
Нет! Я хочу JavaScript
И это, на самом деле, не первый раз, когда я предлагаю заниматься обучением глубоких нейронных сетей на JavaScript. Но даже если предположить на секунду, что это не безумная идея, есть одна проблема. В Google Colab нет встроенной поддержки JavaScript. К счастью, я смог «взломать» его. Благодаря исследованиям, проведённым в этом issue и некоторым простым JavaScript сниппетам, мы можем довольно легко скрестить Google Colab c TensorflowJs.
Быстрый старт
Для того чтобы быстро начать, я создал шаблон. Просто откройте эту ссылку и клонируйте шаблон на Google Диск с помощью команды «Save a copy in Drive».
Теперь у вас есть собственная копия Jupyter Notebook на вашем Google Диске. Выполните код из секции «Prep JS runtime for Google Colab», перезагрузите страницу и всё, ваш JavaScript Jupyter Notebook готов к работе!
Как это работает
В шаблоне Jupyter Notebook заранее прописано ядро javascript. Естественно, при первом запуске на машине, которая вам выделена, нет этого ядра. Поэтому при старте вы увидите сообщение: «Unrecognized runtime javascript; defaulting to python».
Выполнив код в секции «Prep JS runtime for Google Colab», мы устанавливаем ijavascript (это не опечатка — это название npm пакета). Это ядро для Jupyter Notebook, которое поддерживает JavaScript. Более подробно вы можете ознакомиться с проектом на их GitHub репозитории — ijavascript.
Перезагрузив страницу, мы вынуждаем Google Colab загрузить ядро javascript и открываем удивительный мир JavasScript и машинного обучения.
Исправление проблем
Убедитесь, что ядро установилось
Если вы не видите следующую строчку, проверьте форматирование кода:
Google Colab имеет тенденцию добавлять или удалять пробелы, это может всё сломать.
В ядре ijavascript нет простого и понятного способа выполнения команд оболочки
Чтобы это исправить, нужно написать небольшую функцию. Найти её можно в шаблоне.
Так вы можете инициализировать package.json, установить зависимости и запустить несколько команд.
Не используйте let, const
Вы можете использовать её для запуска асинхронного кода:
Лимиты Google Colab
Через некоторое время вашу машину уничтожат (подробнее об этом на сайте Google Colab), и при попытке выполнить любой javascript, вы увидите сообщения об ошибках компиляции кода. Скорее всего, вам выделили новую машину. Чтобы это исправить, просто выполните код из секции «Prep JS runtime for Google Colab» и перезагрузите страницу.
Машины без GPU
Обязательно проверяйте, что ваша машина имеет подключенный GPU. К сожалению, иногда Google Colab может выдать машину без GPU. Можете проверить это, выполнив следующий код:
Почему JavaScript
Есть несколько причин, по которым я предпочитаю JavaScript (TensorflowJS) для машинного обучения:
В чём выгода
Почему мы должны страдать и использовать все эти помощники? Почему бы не обучать нейронные сети на своём MacBook/PC? Причина в том, что даже для небольших наборов данных, таких как MNIST и простой модели CNN, вы можете получить повышение производительности в 3—7 раз.
Ну и в конечном счёте можете достичь молчания вентиляторов.