Skip to content

Инструкция по работе с Google Colab

Ilya Zakharkin edited this page Jul 17, 2018 · 2 revisions

Что это такое?

Google Colab -- сервис, который позволяет запускать (после загрузки в него) Jupyter Notebook'и, причём если при работе с ноутбуком сверху нажать вкладку Runtime -> Change runtime type -> GPU, то вы будете иметь доступ к одному GPU (NVidia Tesla K80) бесплатно.

Однако будьте внимательны -- изначально разработчики предупредили, что ноутбук "сбрасывается" каждые 12 часов, то есть если оставить секту обучаться больше, чем на 12 часов, то может произойти неприятное -- ноутбук просто перестанет выполнятся сам по себе. То есть если вам нужно запустить ноутбук на Linux-сервере с одним бесплатным GPU часа на 3-4, то этот вариант точно для вас (нужно только стабильное интернет-соединение).

Ссылка на сервис: https://colab.research.google.com

Работа с файлами

Выполнив команду !ls в ячейке с кодом можно увидеть, какие файлы лежат в данной папке (вместе с запущенным ноутбуком).

  • Чтобы загрузить свой файл/несколько файлов, можно выполнить этот код:
from google.colab import files

uploaded = files.upload()

for fn in uploaded.keys():
  print('User uploaded file "{name}" with length {length} bytes'.format(
      name=fn, length=len(uploaded[fn])))

-- появится виджет с предложением выбрать файлы на компьютере (файлы закачиваются в ту же папку, где запущен ноутбук на Colab'e).

  • Чтобы скачать файл (или много файлов/папку) из Colab'а себе на компьютер (тестировалось в браузере Google Chrome, возможно, в остальных не работает), тогда можно так:
from google.colab import files

files.download(<имя вашего файла, лежащего в Colab>)

-- это для одного файла. Если нужно скачать много файлов/папку, можно написать цикл (если имена однотипные), или вручную для каждого вызвать эту команду. Папку можно удобно выкачать, если получить имена всех файлов в этой папке с помощью библиотеки glob и выкачать их в цикле с помощью files.download().

  • Чтобы загрузить папку с файлами со своего компьютера, запустите ячейку со следующей функцией:
def upload_files(path='./', verbose=False):
  '''
    Загружает выбранные файлы в папку path
  '''
  from google.colab import files
  import os
  
  uploaded = files.upload()
  if not os.path.exists(path):
    os.makedirs(path)
    
  for name, bytes_ in uploaded.items():
    open(os.path.join(path, name), 'wb').write(bytes_)
    os.remove(name)
    
  if verbose:
    print('Uploaded files: ' + '\n'.join(list(uploaded.keys())))

Использование -- в отдельной ячейке напишите:

upload_files(path='<путь до папки, куда хотите закачать>')

Пример:

upload_files(path='./data/train/')  

Как посмотреть, что лежит в папке -- выполнить в отдельной ячейке:

!ls <имя папки, например, data/train>