Similar presentations:
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.
Создание программы в GoogleColaboratory
• Начинаем создавать программу.
• В Google Chrome обращаемся к ресурсу
• https://colab.research.google.com/notebo
oks/intro.ipynb#recent=true
• Получаем панель приглашения (рис. 7).
20.
• Рис. 7. Панель приглашения GoogleColaboratory
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 – TheBeginner’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 withGoogle 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)