1.99M
Category: internetinternet

Google Colaboratory

1.

Google Colaboratory
ЛЕКЦИЯ 1
Зарецкий М.В.
кафедра ВТиП

2.

• Что это такое и зачем оно нам
• При
решении научно-технических задач
специалист
должен
использовать
современные программные средства. Для
работы этих программных средств требуются
большие вычислительные ресурсы – объем
памяти, возможности процессора и т.д.
Google Colaboratory является облачной
средой,
позволяющей
разрабатывать
программы на языке программирования
Python,
используя
многочисленные
программные пакеты.

3.

• Google дает возможность для решения
задач использовать свои ресурсы до 12
часов подряд.
• Пользователь может хранить свои
программы и данные в облачном
хранилище Google Disk.
• И все это легально и бесплатно!
• Нельзя обрабатывать средствами
Google Colaboratory данные,
содержащие коммерческую,
врачебную или иную другую тайну!

4.

• Но в учебном процессе использовать
Google Colaboratory можно и нужно.
• От студента требуется знание основ
языка Python. В настоящее время
имеется огромное количество пособий
по данному языку программирования.
• Множество видеокурсов выложено в
свободном доступе на youtube.
• Требования к оборудованию
минимальны – процессор должен быть
64-разрядный.

5.

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

6.

• Наконец, обсудим литературу.
• Работа с Google Colaboratory описана в
очень многих Интернет-источниках,
чаще всего на английском языке. На
последнем слайде я привел перечень
Интернет-источников [1-5], которыми
пользовался при подготовке своей
серии публикаций. У некоторых из них
экстравагантные заголовки (особенно у
[1]), но содержание для нас важнее.

7.

Создаем облачное хранилище.
• Создаем аккаунт на почтовом сервисе
https://www.gmail.com
• Если у вас уже есть аккаунт на этом
сервисе, создайте новый, только для
работы с Google Colaboratory.
• Создали? Вам бесплатно выделено
облачное хранилище размером в
15GByte.

8.

• Как получить доступ к своему
облачному хранилищу.
• Запустите браузер Google
Chrome.
• Наберите URL
• https://www.google.com/intl/ru_r
u_/drive/

9.

• Откроется WEB-ресурс,
содержащий много интересной
информации. Нам надо сейчас
начать взаимодействие с Google
Disk. Щелкнем мышкой по кнопке
«Открыть диск» (рис. 1).
• Рис. 1 Начало взаимодействия с
Google Disk

10.

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

11.

• После нажатия кнопки «Открыть
диск» выводится стандартный
диалог выбора аккаунта, а затем
стандартный диалог ввода пароля.
• После успешного ввода пароля мы
попадаем в среду Google Disk.
Создадим две папки – startProg для программ, simpleData – для
данных.

12.

• Щелкаем правой кнопкой мыши,
получаем контекстное меню (рис.
3)
• Рис. 3 Контекстное меню

13.

• Выбираем пункт «Создать папку».
• Получаем диалоговое окно (рис. 4).
• Рис. 4. Диалог создания папки
• Вводим имя создаваемой папки
startProg и щелкаем мышкой по
кнопке «создать».

14.

• После некоторой паузы увидим
примерно такую картину (рис. 5).
• Рис. 5. Наглядное отображение
папки на Google Disk

15.

• Мне нравятся картинки более
яркие, поэтому папки с
программами у меня зеленые, а
папки с данными - синие. Щелкаем
по значку папки правой кнопкой
мыши, получаем контекстное меню
манипуляций с папкой (рис. 6).

16.

• Рис. 6 Контекстное меню
манипуляций с папкой

17.

• Выбираем желаемый цвет, и папка
теперь покрашена.
• Теперь надо создать папку для
хранения данных simpleData. Ее
создание не представляет для
читателя никакой трудности.
Внутри этой папки создадим папку
Pictures для изображений и папку
numericData для числовых данных.

18.

• Изображения я загрузил с жесткого
диска своего компьютера.
Сложности в этом нет никакой –
выбирается пункт контекстного
меню «Загрузка файлов», затем с
помощью стандартного меню
поиска файлов производится
загрузка. Таким же образом я
загрузил файл с числовыми
данными.

19.

Создание программы в Google
Colaboratory
• Начинаем создавать программу.
• В Google Chrome обращаемся к ресурсу
• https://colab.research.google.com/notebo
oks/intro.ipynb#recent=true
• Получаем панель приглашения (рис. 7).

20.

• Рис. 7. Панель приглашения Google
Colaboratory

21.

• Выведенные на панели данные
могут быть и иными. Но нас
сейчас интересует только
кнопка «Создать блокнот» в
правом нижнем углу. Нажмем
на эту кнопку.

22.

• Получаем «заготовку»
программы (рис. 8)
• Рис. 8. Заготовка программы
• Эту «заготовку» мы будем
преобразовывать в программу.

23.

• Начальные сведения о блокноте
• Полученную «заготовку» правильно
будет назвать пустым – пока! –
блокнотом. Блокнот состоит из
ячеек. Ячейки могут быть кодовые
(содержащие код на Python) и
текстовые (содержащие текст).

24.

• Поработаем немного с ячейками. В
кодовой ячейке запишем код на
языке Python (рис. 9).
• Рис. 9. Ячейка с кодом

25.

• Чтобы запустить код в работу,
щелкнем мышкой по пиктограмме
«треугольник» в левой части
ячейки (рис. 10).
• Рис. 10. Ячейка с выполняемым
кодом

26.

• При выполнении кода вокруг
ячейки видны «бегущие» точки
(затем – «бегущая» дуга).
• Рис. 11. Ячейка и выведенный
результат работы

27.

• После завершения выполнения под
ячейкой выводится результат, если
вывод предусмотрен (рис. 11).
• Рис. 12. Очистка области вывода.

28.

• Чтобы очистить область вывода,
подводим указатель мыши влево от
результата и нажимаем на
появившуюся пиктограмму
«крестик» (рис. 12).
• В область вывода также выдаются
сообщения об ошибках.
• Например, мы решили разделить
число на 0.

29.

• Рис. 13. Сообщение об ошибке
• При обнаружении ошибки круг
слева окрашивается в красный
цвет, строка, содержащая ошибку,

30.

• подчеркивается волнистой красной
линией. В области вывода
появляется сообщение об ошибке.
• Ниже текста с анализом ошибки
находится кнопка “SEARCH STACK
OVERFLOW” – приглашение искать
объяснение ошибки на указанном
WEB-ресурсе. Удалить сообщение
об ошибке можно так же, как и
вывод.

31.

• Чтобы удалить кодовую ячейку,
подведем указатель мыши к
пиктограмме «урна» и щелкнем
(рис. 14).
• Рис. 14. Удаление кодовой ячейки

32.

• Чтобы создать новую кодовую
ячейку, подведем указатель мыши
к пиктограмме «+ Код» и щелкнем
(рис. 15).
• Рис. 15. Вставка кодовой ячейки

33.

• Чтобы создать новую текстовую
ячейку, подведем указатель мыши
к пиктограмме «+ Текст» и
щелкнем (рис. 16).
• Рис. 16. Вставка текстовой ячейки

34.

• После щелчка получаем текстовую
ячейку, в левой части которой
пишем текст (в правой части этот
текст дублируется) (рис. 17).
• Рис. 17. Работа с текстовой ячейкой

35.

• После завершения ввода текста
нажимаем кнопку с зачеркнутой
кистью (рис. 18).
• Рис. 18. Завершение работы с
текстовой ячейкой

36.

• Текстовая ячейка примет вид (рис.
19).
• Рис. 19. Текстовая ячейка

37.

• При необходимости внести в
текстовую ячейку изменения
нажимаем кнопку с кистью (рис. 20).
• Рис. 20. Переход в режим
редактирования текстовой ячейки
• Этот режим уже был описан.

38.

• Имя файлу с блокнотом мы
придумываем сами. Расширение (тип
файла) всегда ipynb.
• Пока что наш файл имеет
бессмысленное имя Untitled0.
• Изменим его. Для этого щелкнем
мышью в левом вернем углу (рис. 21).
• Рис. 21. Переименование блокнота

39.

• Уберем старое название и напишем
новое. В нашем случае – Start01.
• Важная деталь: а в какой папке
находится наша программа? Мы ведь
при создании папку не указали.
Разберемся с этим и размести
программу в нужной папке.
• Переходим к закладке «Мой диск»,
входим в папку startProg и убеждаемся,
что она пуста.

40.

• Возвращаемся в папку «Мой диск». Мы
видим, что она содержит папку “Colab
Notebooks” , которая создана Google
Colaboratory автоматически. Кроме того,
в папке «Мой диск» находится значок,
отображающий нашу программу.
• Щелкнем правой кнопкой мыши по
этому значку и выберем опцию
«Переместить» (рис. 22).

41.

• Рис. 22 Выбор опции для перемещения файла
с программой

42.

• Открывается окно для указания
направления перемещения.
• Рис. 23. Перемещение файла

43.

• Выбираем опцию «Мой диск».
• В появившемся окне видим список
папок, в которые можно переместить
файл (рис. 24).
• Рис. 24. Перемещение файла

44.

• Выбираем нужную папку (в нашем
случае startProg) и нажимаем кнопку
«Переместить в эту папку».
• Некоторая затрата усилий
компенсируется тем, что все файлы
всегда находятся в нужных папках.

45.

Переходим к программированию
• Возвращаемся теперь к нашей
программе, которую мы наконец-то
поместили в нужную папку.
• Начнем с чего-нибудь простого.
Например, найдем сумму, разность,
скалярное и векторное произведение
двух векторов, смешанное
произведение трех векторов.

46.

• Сначала попытаемся сделать это
средствами языка Python в
«классической» версии. И сначала
попробуем суммировать числа.
• Рис. 25. Программа для суммирования.
• Рис. 26. Суммируем 2 числа.

47.

• Перейдем к примеру посложнее –
попытаемся сложить два вектора.
• Рис. 27. Попытка сложить два вектора
«классическими» средствами языка
Python
• Результат объясняется очень просто.
Операнды функции являются списками.

48.

• Функция «+» выполняет в данном
случае конкатенацию списков.
• Разумеется, можно написать нечто
такое:
• Рис. 28. Программа для поэлементного
сложения двух списков, содержащих
числовые элементы, в Python

49.

• Нетрудно убедиться, что программа
правильно выполняет поэлементное
сложение двух списков, содержащих по
3 числовых элемента.
• Но для решения инженерных задач нам
хочется использовать программные
пакеты, которые содержат
эффективные функции.
• Таких пакетов в Python очень много.
Начинаем знакомство с одного из
наиболее популярных – пакета numpy.

50.

Первое знакомство с пакетом
numpy
• Чтобы не устраивать путаницу, мы
завершим работу с программой Start01
и будем теперь работать с программой
Start02.
• Приступим к ее созданию. Входим в
папку startProg и нажимаем правую
кнопку мыши.

51.

• Открывается контекстное меню (рис.
29)
• Рис. 29. Контекстное меню при
создании нового файла программы

52.

• В контекстном меню выбираем пункт
«Еще», в открывшемся новом меню
выбираем пункт “Google Colaboratory”.
• Через некоторое время будет создан
новый безымянный файл типа ipynb.
Дадим ему имя Start02.ipynb. Заметим,
что его никуда перемещать не надо –
он и так с самого начала находится в
папке startProg.
• Начнем работу с программой.

53.

• Первым делом импортируем пакет
numpy (рис. 30).
• Рис. 30. Импорт пакета numpy
• Мы активизируем пакет numpy, а
обращаться к нему будем с помощью
псевдонима np – так считается
удобным.

54.

• А еще мы выводим версию пакета. Это
чисто из любопытства – в Google
Colaboratory версии всегда свежие.
• Функция mySum остается той же, что и
была в Start01, пример с двумя числами
можно не изменять. Рассмотрим работу
с векторами (рис. 31).
• Рис. 31. Работа с векторами средствами
numpy

55.

• Функция np.array превратила списки в
numpy-массивы (сложные структуры
данных поддерживаются разными
пакетами, и перевод данных из
формата numpy в формат, например,
pandas или tensorflow не всегда прост).
• А numpy-массивы совпадающей длины
можно складывать / вычитать/
«умножать»/ «делить» поэлементно.

56.

• Рис. 32. Работа с векторами средствами
numpy

57.

• Внимание! Вычитание векторов мы
выполнили двумя способами – с
помощью ранее написанной функции
mySum с надлежащим образом
заданными аргументами и
непосредственно с помощью операции
вычитания. Функции np.dot и np.cross
выполняют скалярное и векторное
произведение двух векторов
соответственно.

58.

• Введя еще один вектор и
скомбинировав вызовы np.dot и
np.cross, можно получить смешанное
произведение трех векторов.
• Сделайте это самостоятельно.
• Перейдем теперь к поэлементным
операциям. Отметим, что они не имеют
такого глубокого смысла, как скалярное
или векторное произведение. Тем не
менее, часто они бывают удобны.

59.

• Рис. 33.Поэлементные операции
• На рис. 33 представлены поэлементные
операции – сложение всех элементов с
числом, поэлементное умножение,
поэлементное деление.

60.

Работа с Google Disk
• Мы уже научились получать числовые
результаты. Необходимо научиться
сохранять их на магнитном носителе
(как в облаке, так и на локальном
диске).
• Рассмотрим наиболее
распространенный способ
взаимодействия с Google Disk.

61.

• Мы еще не работали с самым левым
столбцом среды Google Colaboratory
(рис. 34).
• Рис. 34. Левый столбец в свернутом
виде

62.

• Щелкнем мышью по самой нижней
кнопке («Файлы»). Получим новую
картину (рис. 35).
• Рис. 35. Левый столбец в развернутом
виде

63.

• Мы видим, что доступна папка
sample_data. Щелкнув по значку слева
от нее, узнаем, что в ней находится
(рис. 36).
• Рис. 36. Содержимое папки sample_data

64.

• Интересно, как получить доступ к
нашим данным на диске. Этим сейчас
мы и займемся.
• Сначала рассмотрим пиктограммы
вверху.
• Рис. 37. Загрузка в сессионное
хранилище

65.

• Нажатие этой кнопки делает
возможным ввод файла с внешнего
носителя во временное сессионное
хранилище (рис. 38).
• Рис. 38. Выбор файла для загрузки в
сессионное хранилище

66.

• Выбираем рыбку-клоуна и получаем
предупреждение (рис. 39).
• Рис. 39. Предупреждение
• При каждом новом запуске файлы надо
будет загружать заново.

67.

• А теперь посмотрим вновь на левый
столбец. Мы видим, что файл с нашей
рыбкой теперь отображается (рис. 40).
• Рис. 40. Подгруженный файл
отображается в списке файлов

68.

• Дважды щелкнув мышкой по значку с
этим файлом, получим изображение в
правой части экрана.
• Теперь надо разобраться, как работать
с этим файлом. Хотя файл с
изображением является numpyмассивом, пакета numpy для работы с
ним мало.
• Существует много пакетов для работы с
изображениями. Мы воспользуемся
пакетом cv2.

69.

• Рис. 41. Текст программы для обработки
изображения

70.

• Мы импортируем пакет cv2. Но функция
cv2.imshow не работает в среде Google
Colaboratory. Поэтому мы импортируем
ее аналог cv2_imshow. Затем читаем
рисунок, выводим его. Также выводим
сведения о его размерности
Clown.shape (не забываем, что это
numpy-массив).
• Напоминаю! Рисунок должен
находиться во временном сессионном
хранилище!

71.

• Раз уж мы прочитали рисунок, сделаем
с ним что-нибудь. Например, изменим
цвета. Рисунок, представлен в памяти в
виде трехмерного массива, каждый
элемент которого принимает
целочисленные значения в диапазоне
от 0 до 255 (типы numpy.uint8). Вычтем
каждый элемент массива из 255. Как
изменятся цвета? Новый рисунок
выведем и сохраним во временном
сессионном хранилище (рис. 42).

72.

• Рис. 42. Преобразование и сохранение
рисунка
• Чтобы увидеть, что новый файл
размещен, нажмите кнопку обновления
информации (рис. 43).

73.

•Следующая кнопка вызывает
обновление отображаемой информации
(рис. 43).
•Рис. 43. Кнопка обновления
отображаемой информации
•После нажатия отобразится новый файл.

74.

• Следующая кнопка вызывает
подключение (монтирование диска)
(рис. 44).
• Рис. 44. Кнопка подключения диска

75.

• Щелкнем мышью по этой кнопке.
• Нам будет задан вопрос (рис. 45).
• Рис. 45. Вопрос о подключении
блокнота к файлам на Google Disk.
• Отвечаем: «Подключиться к Google
диску»

76.

• Получаем вопрос о выборе аккаунта
(рис. 46).
• Рис. 46. Вопрос о выборе аккаунта

77.

• При правильном выборе аккаунта в
левой части экрана видим новую папку
(рис. 47).
• Рис. 47. Новая папка

78.

• Мы можем раскрыть эту папку,
вложенные папки. Так мы можем
рассмотреть всю структуру папок и
файлов на своем Google Disk (рис. 48).
• Рис. 48. Папки и файлы на Google Disk

79.

• Прочитаем файл с диска (рис. 49).
• Рис. 49. Чтение файла с Google Disk
• В переменную path записан полный
путь + имя файла. Обратите внимание
на то, что в начале пути находится
папка content. Ее надо указывать
обязательно!

80.

• Прочитаем файл с диска и выведем его
(рис. 50).
• Рис. 50. «Стена велосипедов» в
уфимском Арт-Квадрат

81.

• Выведем сведения о размерности
numpy-массива, содержащего
графическую информацию (рис. 51).
• Рис. 51. Размеры numpy-массива,
содержащего графическую информацию

82.

• Сохраним на диск результат
вычисления векторного произведения
(рис. 52).
• Рис. 52. Вывод на диск числовой
информации в текстовой форме

83.

• Сохраним на диск «перекрашенную»
рыбку (рис. 53).
•Рис. 53. Вывод на диск графического
файла
•Внимание! Если раньше мы сохранили
рисунок во временном сессионном
хранилище (слайд 72), то сейчас наш
рисунок сохранен в персональном
хранилище на Google Drive.

84.

Взаимодействие с локальным
диском
•Мы рассмотрели ввод и вывод файлов с
помощью Google Disk – с использованием
персонального или временного
сессионного хранилища. Этого достаточно
– мы уже умеем помещать файлы на
Google Disk и скачивать их оттуда.
•Рассмотрим способы чтения (записи)
файлов без обращения к Google Disk.

85.

•Для работы с локальным диском нам
потребуется подключить еще одну
библиотеку (рис. 54).
•Рис. 54. Подключение библиотеки files и
чтение файлов непосредственно с
локального диска.
•Запускаем представленный на рисунке
фрагмент кода.

86.

•Получаем приглашение выбрать файлы
или отменить загрузку (рис. 55).
•Рис. 55. Приглашение выбрать файлы на
локальном диске.
•Щелкаем по кнопке «Выбрать файлы».
Открывается стандартный диалог выбора
файлов. После выбора файла
отображается результат его загрузки
(рис. 56).

87.


•Рис. 56. Результат загрузки файла
•Теперь поместим содержание файла
(NumPy-массив) в переменную, выведем
картинку, а затем скачаем файл с
картинкой в папку «Загрузки» под
именем “MyCat.jpg” – изменим тип
файла(рис. 57).

88.


•Рис. 57. Работа с файлом изображения
•Файл помещен в папку «Загрузки».

89.

•Рассмотрим одновременную загрузку
нескольких файлов.
•Рис. 58. Загрузка с диска нескольких
файлов
•Считаем, что библиотека files уже
установлена.
•К каждому из файлов можно обращаться
по имени, как уже было показано.

90.

•Чтобы не указывать конкретные имена
файлов, воспользуемся переменой
uploaded. Это словарь, ключом в нем
является имя файла. Пока этого
достаточно.
•Создаем список имен загруженных
файлов (рис. 59).
•Рис. 59 Создание списка имен
загруженных файлов

91.

•А теперь поработаем с этим списком.
Например, выведем в цикле все
загруженные картинки (рис. 60)
•Рис. 60 Работа со списком имен
загруженных файлов
•Обратите внимание на переменную «_»!
•Ее часто используют в качестве
параметра цикла.

92.

Сохранение программ на
локальном носителе
• Нам потребуется сохранять созданные
нами программы на локальном
носителе, «скачивать» программы, если
пользоваться просторечной формой.
• Посмотрим, как это делать.

93.

• В меню «Файл» имеются опции
«Скачать IPYNB» и «Скачать PY».
• При выборе первой из этих опций
скачивается блокнот целиком, во
втором случае генерируется только
файл Python. В обоих случаях файлы
скачиваются в папку «Загрузки», откуда
их следует переместить в папки для
хранения.

94.

Прерывание подключения к
среде
• При длительном бездействии или по
иной причине может быть прервано
подключение к среде. Google
Colaboratory сообщает нам об этом (рис.
61).

95.

• Рис. 61. Прерывание подключения.
• Если мы не превысили максимальную
длительность сеанса, выбираем опцию
«Подключиться повторно».

96.

Запуск существующей
программы
• Предположим, мы хотим продолжить
работу с существующей программой.
• В этом случае:
• входим в свой аккаунт;
• на Google Disk входим в папку, где
находится программа (или загружаем
программу в эту папку).

97.

• дважды щелкаем мышью по значку
программы.
• После этого получаем сообщение (рис.
62).
Рис. 62. Сообщение при открытии
программы

98.

• Щелкаем мышью по кнопке «Открыть в
приложении Google Colaboratory»
• Программа будет открыта.
• По завершении работы необходимо
закрыть свой аккаунт!
• На образовательный портал выложена
эта презентация и два файла ipynb с
примерами.

99.

Литература
• 1. Anne Bonner. Getting Started With
Google Colab. A simple tutorial for
Frustrated and Confused. URL:
https://www.linkedin.com/pulse/gettingstarted-google-colab-simple-tutorialconfused-anne-bonner (дата обращения
08.01.2021)

100.

• 2. Vishakha Lall. Google Colab – The
Beginner’s Guide. URL:
https://medium.com/lean-in-women-intech-india/google-colab-the-beginnersguide-5ad3b417dfa (дата обращения
08.01.2021)
• 3. Shuyi Wang. How to Practice Python
Programming with Google Colab? URL:
https://towardsdatascience.com/how-topractice-python-with-google-colab45fc6b7d118b (дата обращения
08.01.2021)

101.

• 4. Ahmed Gad. Getting Started with
Google Colab Notebooks. URL:
https://heartbeat.fritz.ai/getting-startedwith-google-colab-notebooks117e2bb0c220 (дата обращения
08.01.2021)
• 5. Cyprien NIELLY. 10 tricks for a better
Google Colab experience. URL:
https://towardsdatascience.com/10-tipsfor-a-better-google-colab-experience33f8fe721b82 (дата обращения
08.01.2021)
English     Русский Rules