- How To Use Kaggle and Google Colab Notebooks with GPU Enabled
- Struggling to Annex Google Colab in Building your Machine Learning Models?
- Remarkably, it costs an arm and a leg to get a decent GPU from existing cloud providers. So, how do we build a Machine…
- Kaggle Notebook and Kernel
- Step 3: Set Up and Enable The GPU
- Бесплатная GPU Tesla K80 для ваших экспериментов с нейросетями
- Для начала, почему это интересно
- Что такое Colaboratory
- Запускаем обучение
- Монтируем google drive
- Tensorboard
- Доступ по ssh
- Русские Блоги
- Kaggle от входа до фактического боевого обучения (требуется для новичков)
- Kaggle от входа до фактического боевого обучения (требуется для новичков)
- 1 создание ядра
- 1.1 Создание ядра Notebook (созданного с нуля)
- 1.1.1 Связанные инструкции по настройке
- 1.2 Создание скриптового ядра (созданного с нуля)
- 1.3 Создание ядра из существующего набора данных
- 2 kaggle создает новый файл
- 2.1 Kaggle создает новые файлы, загружая
- 2.2 Создание файлов py вручную
- 2.3 Как использовать Kaggle для прямой загрузки всего проекта и как его использовать .py файл
- 3 Как загрузить данные на kaggle
- 4 Актуальные бои — как представить результаты своего проекта на Kaggle
- 5 часто задаваемых вопросов об использовании Kaggle
- 5.1 Проблема с загрузкой
How To Use Kaggle and Google Colab Notebooks with GPU Enabled
One of the biggest hurdles of democratizing Deep Learning has been the need for a GPU accelerated environment. If we want to spend our time efficiently testing and learning across problem statements we need a GPU-based server. But these GPU based environments across platforms like GCP, AWS, Azure, Paper-space can amount to a huge cost. This cost when combined with the cost of storage and if we are using instances that are persistent may really add to the burden on our money bag.
But some amazing news came in when Kaggle and Google Colab introduced GPU-enabled kernels which can be now used to decipher and solve deep learning problems across the problem statements without the need to buy a GPU.
Struggling to Annex Google Colab in Building your Machine Learning Models?
Remarkably, it costs an arm and a leg to get a decent GPU from existing cloud providers. So, how do we build a Machine…
To learn and understand how to make use of the attractive features the world of Google Colab encompasses, we will be making reference to the article above which contains a detailed explanation in order to set up your Google Colab.
Kaggle Notebook and Kernel
Although, the workflow of Kaggle Notebook is kind of related to that of Google Colab. However, for all the learners who are big fans of the Kaggle Notebook, this one comes as a big gift.
Let’s quickly look at the steps needed to implement a GPU while using the Kaggle Notebook.
Step 1: Create a Kaggle account by signing up at Kaggle.com
Step 2: Go to your created profile.
In the top left of the page, you will see your profile. You can click on it and go to “my profile”.
Click on the 3 line bars at the top right corner of your page, showing Home, Compete, Data, Communities, Courses. However , click on Notebooks.
Thereafter, checking the top right corner of the displayed page, New Notebook is shown, click on this as well.
A new notebook gets fired, the same as the one displayed below.
Step 3: Set Up and Enable The GPU
Over to the right side of your Kaggle notebook, you will see a couple of dropdowns, like Data, Settings, and Code Help.
Data: While working with the dataset gotten from Kaggle competitions, all datasets provided for the competition can be automatically imported into our notebook by just clicking down the Data tab, uploading the name of the competition using the Add Data >> Upload icon. Meanwhile, working with other datasets from your local machine is made easy as well. Add Data>> Upload a Dataset.
Источник
Бесплатная GPU Tesla K80 для ваших экспериментов с нейросетями
Около месяца назад Google сервис Colaboratory, предоставляющий доступ к Jupyter ноутбукам, включил возможность бесплатно использовать GPU Tesla K80 с 13 Гб видеопамяти на борту. Если до сих пор единственным препятствием для погружения в мир нейросетей могло быть отсутствие доступа к GPU, теперь Вы можете смело сказать, “Держись Deep Learning, я иду!”.
Я попробовал использовать Colaboratory для работы над kaggle задачами. Мне больше всего не хватало возможности удобно сохранять натренированные tensorflow модели и использовать tensorboard. В данном посте, я хочу поделиться опытом и рассказать, как эти возможности добавить в colab. А напоследок покажу, как можно получить доступ к контейнеру по ssh и пользоваться привычными удобными инструментами bash, screen, rsync.
Для начала, почему это интересно
Наличие GPU ускорителя является критическим фактором для скорости обучения deep learning моделей. Без GPU обучение нейросети займет многие часы/дни и не позволит полноценно экспериментировать со структурой сети. Объем видеопамяти так же важен. Больше памяти — можно установить больший размер батча и использовать более сложные модели. На сегодняшний день 13G это хороший объем, если захотите получить примерно столько же у себя на столе, придется покупать GPU уровня GTX 1080 Ti.
Что такое Colaboratory
Это форк популярной среды Jupyter notebook. Ваши ноутбуки доступны через google drive в .ipynb формате и вы можете их запускать у себя локально. Поддерживается Python 2.7 и 3.6. Код исполняется на сервере в docker контейнере. Можно закрыть браузер, все процессы на сервере продолжат работать, позже можно подключиться к серверу снова. Docker контейнер выдается вам во временное пользование на 12 часов. Вы имеете root привилегии, и можете устанавливать и запускать любые программы внутри контейнера. Colaboratory (далее colab) также поддерживает совместную работу над ноутбуком, по типу google docs. Это отличная платформа для начала изучения deep learning, machine learning. Многие бесплатные курсы, например Открытый курс машинного обучения используют Jupyter notebook формат для своих учебных материалов.
Запускаем обучение
Для создания нового ноутбука перейдите по ссылке. После успешного логина и создания ноутбука в меню выберете Runtime -> Change Runtime Type, в открывшемся диалоге в опции Hardware acceleration установите GPU, далее save.
После этого можно удостовериться, что tensorflow использует GPU. Просто скопируйте этот код в первую ячейку ноутбука и выполните, нажав shift+Enter:
Теперь попробуем запустить простую модель tensorflow из примеров, для этого клонируем github репозиторий и запустим скрипт.
После выполнения это команды мы увидим как сеть обучиться и сделает первые предсказания. Существует достаточно много материалов описывающих возможности Jupyter, поэтому я не буду подробно на этом останавливаться.
Монтируем google drive
Всё работает отлично, но через 12 часов виртуальную машину у вас заберут и все данные внутри контейнера будут потеряны. Хорошо бы позаботиться о постоянном хранилище. В colab есть примеры как использовать импортировать данные из cloud storage, google sheets. Это предполагает явный вызов операции копирования, а мне бы хотелось иметь возможность примонтировать внешний диск к файловой системе внутри контейнера, тут на помощь приходит google drive и FUSE драйвер для него. Подключить google drive можно выполнив код, по рецепту из статьи
После этого вам будет доступна директория куда вы можете записывать данные, без опаски их потерять после остановки контейнера. Вы можете определить параметр model_dir в конфигурации модели, tensorflow будет автоматически восстанавливать состояние модели из последнего checkpoint. Таким образом, вы можете продолжить обучение модели или запустить inference в любой момент.
Tensorboard
Я люблю использовать tensorboard в процессе экспериментов со структурой и параметрами нейросети. Если вы хотите узнать больше об этом инструменте рекомендую посмотреть презентацию. Поэтому, я искал возможность, как можно запустить tensorboard в colab. Ответ нашелся на SO. Через переменную LOG_DIR вам необходимо задать путь к model_dir из конфигурации tensorflow модели, либо к корневой директории внутри которой содержиться множество сохраненных моделей.
После выполнения в последней строчке будет выведен URL, открыв который в браузере, мы увидим привычный нам tensorboard.
Доступ по ssh
Если у вас есть опыт использования Jupyter. То вы вероятно знаете, что выйдя за рамки игрушечных моделей, некоторые преимущества формата jupyter ноутбука становятся его недостатками. Ноутбук превращается в сложно читаемую кашу, результаты вычислений становится трудно воспроизвести. Jupyter ноутбуки остаются отличным инструментом для обучения, визуализации и небольших экспериментов. Однако, в средних по величине проектах, я предпочитаю структурировать python код классическим способом, используя разбиение на модули и классы. Работать на серьезным проектом удобнее в PyCharm / Vim и т.д… Постоянно синхронизировать код через репозиторий, запускать .py файлы не очень удобно через jupyter, использовать для этого привычные инструменты намного комфортнее.
Основываясь на примере запуска tensorboard, я написал код, который открывает ssh туннель в контейнер.
Для создания TCP туннеля вам потребуется создать аккаунт на сайте ngrok.com и скопировать authtoken оттуда. В бесплатной версии ngrok два тунеля не поддерживаются, поэтому если http тунель на tensorboard всё еще работает, вам надо его отключить, можно это сделать например перезапустив контейнер, нажав Ctrl+M затем «.».
После запуска тунеля вы увидите в ноутбуке, примерно следующее
Теперь с рабочего компьютера вы сможете залогиниться в colab контейнер используя любой ssh клиент и в данном примере хост 0.tcp.ngrok.io, порт 15223. Пример для linux
Бонус для каглеров, для импортирования данных из kaggle и отсылки submit прямо из colaboratory вы можете использовать официальный API клиент, устанавливается командой pip install kaggle.
Источник
Русские Блоги
Kaggle от входа до фактического боевого обучения (требуется для новичков)
Kaggle от входа до фактического боевого обучения (требуется для новичков)
Поскольку графический процессор моего компьютера — 1050Ti и видеопамять 4G, некоторые задачи не могут выполняться, а студенческая группа не может позволить себе арендовать сервер. Они могут перейти на Kaggle только на некоторое время. Однако на Kaggle Online слишком мало реальных рабочих процедур, даже если они есть Недостаточно дотошный, просто медленно иду наощупь в темной ночи, запишите некоторые из моих собственных поисков!
Ядра Kaggle предоставляют две спецификации докера для потребления.
1. Тип процессора: 4 ядра, 16 ГБ памяти.
2. Тип графического процессора: 2 ядра 14 ГБ памяти tesla-p100 16 ГБ
После входа в kaggle третьим на верхней панели навигации будет «Ядра».
1 создание ядра
После первого открытия сайта Kaggle вы увидите New Notebooks , Вот создание нового ядра, это новое ядро похоже на создание проекта в локальной среде IDE.
Есть два способа создать новое ядро в Kaggle. В основном это среда редактирования:
- Ноутбук: похож на блокнот Jupyter
- Скрипт: среда редактирования, аналогичная Pycharm
В настоящее время язык программирования поддерживает только Python и R
1.1 Создание ядра Notebook (созданного с нуля)
Что такое создание с нуля? На данный момент просто создайте ядро. В текущем ядре нет данных. Если вам нужны данные, вы должны загрузить их самостоятельно.
1.1.1 Связанные инструкции по настройке
Создано Notebook Ядро выглядит следующим образом:
Как видно на рисунке выше:
1、Internet off
2、GPU off
Internet Вам нужно подключиться к Интернету? Если вам нужно что-то скачать, вам нужно это открыть
GPU Вам нужно использовать GPU, если вам нужно использовать GPU, включите его
заметка:
Обе эти настройки закрыты по умолчанию. Если вам нужно их использовать, вам нужно их открыть. После открытия ядро перезагрузится
Основные каталоги файлов следующие:
- ввод: папка, обычно используемая для хранения данных обучения
- config: хранить файлы конфигурации
- lib
- рабочий: рабочий путь, в основном рабочий каталог файла кода, который мы создали
- .ipynb_checkpoints
- notebook_source.ipynb
1.2 Создание скриптового ядра (созданного с нуля)
Script Создание ядра и Notebook Ядро создается аналогично, и создается оно следующим образом:
1.3 Создание ядра из существующего набора данных
Щелкнув по набору данных Cifar10, вы можете создать ядро на этом наборе данных, что эквивалентно помещению набора данных Cifar10 непосредственно во вновь созданное ядро. входная папка
2 kaggle создает новый файл
2.1 Kaggle создает новые файлы, загружая
Мы видим, что:
доступен в обоих режимах редактирования:
Особенности:
1. В случае сценария или записной книжки вы загружаете текущий код. .ipynb файл Типы
2. В случае сценария или записной книжки, если вы загружаете .py файл Сообщит об ошибке: Uploading a kernel failed. Please validate your kernel and try again at a later time.
3. Вы можете загружать по сценарию .ipynb файл , Но загруженный файл не может быть запущен, потому что это не формат записной книжки
4、 Загрузите новый файл .ipynb в среду редактирования сценария и записной книжки, текущий код будет заменен недавно загруженным кодом .ipynb, что означает, что независимо от того, сколько файлов .ipynb вы загружаете, в конце будет сохранен только последний файл .ipynb. файл
2.2 Создание файлов py вручную
Как показано на рисунке ниже, вы можете вручную создать .py файл , И созданный вами файл «.py» также может загрузить два, а также создать новую папку
Созданный вами файл .py нельзя открыть, и вы не можете писать в нем код. Я не знаю, как это сделать. Давайте изучим его позже. Если вы знаете, оставьте сообщение.
2.3 Как использовать Kaggle для прямой загрузки всего проекта и как его использовать .py файл
важный! важный! важный!
Я проанализировал так много выше, все они основаны на файлах типа .ipynb, и только один файл может быть загружен, и, что более важно, невозможно создать файл .py, но наш проект создаст много файлов .py для импорта друг друга без написания кода. Слишком долго, как использовать в kaggle?
Давайте вместе посмотрим, как решить эту проблему:
1. Текущий рабочий каталог находится в kaggle/working В каталоге вы можете использовать следующий код для просмотра:
2. Измените текущий рабочий каталог.
На этом этапе мы изменили текущий рабочий каталог на входной каталог Загрузите загруженный нами проект, чтобы мы могли напрямую использовать .py файл Ла
Вопросы с продолжением:
Если наш разработанный проект можно напрямую загрузить во входную папку таким образом и использовать, изменив рабочий каталог, но если файл необходимо изменить, нам все равно нужно загружать его каждый раз, это вызывает больше проблем, я не знаю, есть ли Знайте решение, добро пожаловать, чтобы оставить сообщение
3 Как загрузить данные на kaggle
Есть два способа загрузки данных при создании нового ядра на kaggle. Нажмите Add Data Ты можешь видеть
Двумя способами:
1. Загрузите свой собственный локальный набор данных, обычно это медленно.
2. Непосредственно используйте существующий набор данных в kaggle. Конечно, его также необходимо загрузить, но это быстрее, чем локальный набор данных.
заметка:
1. Все загруженные файлы данных помещаются входная папка под
2. Все загруженные наборы данных можно только читать. read-only data
4 Актуальные бои — как представить результаты своего проекта на Kaggle
5 часто задаваемых вопросов об использовании Kaggle
5.1 Проблема с загрузкой
Ошибка: Uploading a kernel failed. Please validate your kernel and try again at a later time.
в Notebook kernel При загрузке файла сообщалось об ошибке, здесь его можно загрузить только при загрузке файлы .ipynb , Я получаю эту ошибку, потому что загрузка .py Файл, поэтому определите тип файла перед загрузкой
Справка:
1、Ссылка 1:https://zh.d2l.ai/chapter_deep-learning-basics/kaggle-house-price.html
2、Ссылка 2:https://zh.d2l.ai/chapter_computer-vision/kaggle-gluon-dog.html
3、Ссылка 3:https://github.com/apachecn/Interview
4、Ссылка 4:https://karbo.online/dl/kaggle-gpu/
5、Ссылка 5:https://zhuanlan.zhihu.com/p/60912138
6、Ссылка 6:
7、Ссылка 7:
Некоторые проекты конкурса данных с открытым исходным кодом:
https://github.com/Smilexuhc/Data-Competition-TopSolution
Просто разберитесь в сегодняшнем процессе нащупывания. Естественно, нащупывание должно иметь много недостатков. Приглашаем всех направлять, общаться вместе и стремиться попасть на корабль как можно скорее!
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠
Источник