Google Colab - krótki przewodnik

Google jest dość agresywny w badaniach nad sztuczną inteligencją. Przez wiele lat Google rozwijało strukturę sztucznej inteligencji o nazwieTensorFlow i narzędzie programistyczne o nazwie Colaboratory. Dziś TensorFlow jest open source, a od 2017 roku Google udostępniło Colaboratory bezpłatnie do użytku publicznego. Colaboratory jest teraz znane jako Google Colab lub po prostuColab.

Kolejną atrakcyjną funkcją, którą Google oferuje programistom, jest użycie GPU. Colab obsługuje GPU i jest całkowicie darmowy. Powodem udostępnienia go publicznie może być uczynienie jego oprogramowania standardem w środowisku akademickim do nauczania uczenia maszynowego i nauki o danych. Może również mieć długoterminową perspektywę budowania bazy klientów dla interfejsów API Google Cloud, które są sprzedawane na podstawie wykorzystania.

Niezależnie od powodów, wprowadzenie Colab ułatwiło naukę i rozwój aplikacji do uczenia maszynowego.

Zacznijmy więc od Colab.

Jeśli użyłeś Jupyternotebook, szybko nauczyłeś się korzystać z Google Colab. Mówiąc dokładniej, Colab to bezpłatne środowisko notebooków Jupyter, które działa całkowicie w chmurze. Co najważniejsze, nie wymaga konfiguracji, a tworzone przez Ciebie notatniki mogą być jednocześnie edytowane przez członków Twojego zespołu - tak jak edytujesz dokumenty w Dokumentach Google. Colab obsługuje wiele popularnych bibliotek uczenia maszynowego, które można łatwo załadować do notebooka.

Co oferuje Ci Colab?

Jako programista możesz wykonywać następujące czynności za pomocą Google Colab.

  • Pisz i uruchamiaj kod w Pythonie

  • Udokumentuj swój kod, który obsługuje równania matematyczne

  • Utwórz / prześlij / udostępnij notatniki

  • Importuj / zapisuj notatniki z / do Dysku Google

  • Importuj / publikuj notatniki z GitHub

  • Importuj zewnętrzne zbiory danych, np. Z Kaggle

  • Zintegruj PyTorch, TensorFlow, Keras, OpenCV

  • Bezpłatna usługa w chmurze z bezpłatnym GPU

W tym rozdziale utworzysz i uruchomisz swój pierwszy trywialny notatnik. Postępuj zgodnie z instrukcjami podanymi w razie potrzeby.

Note - Ponieważ Colab domyślnie korzysta z Dysku Google do przechowywania Twoich notatników, upewnij się, że jesteś zalogowany na swoje konto Dysku Google, zanim przejdziesz dalej.

Step 1 - Otwórz następujący adres URL w przeglądarce - https://colab.research.google.com Twoja przeglądarka wyświetli następujący ekran (zakładając, że jesteś zalogowany na swoim Dysku Google) -

Step 2 - Kliknij ikonę NEW PYTHON 3 NOTEBOOKlink u dołu ekranu. Nowy notebook otworzyłby się, jak pokazano na poniższym ekranie.

Jak pewnie zauważyłeś, interfejs notebooka jest dość podobny do tego dostarczonego w Jupyter. Jest okno kodu, w którym można wpisać kod Pythona.

Ustawianie nazwy notatnika

Domyślnie notes używa konwencji nazewnictwa UntitledXX.ipynb. Aby zmienić nazwę notatnika, kliknij tę nazwę i wpisz żądaną nazwę w polu edycji, jak pokazano tutaj -

Nazwijmy ten notatnik jako MyFirstColabNotebook. Więc wpisz tę nazwę w polu edycji i naciśnij ENTER. Notatnik otrzyma nazwę, którą nadałeś teraz.

Wprowadzanie kodu

Teraz wprowadzisz trywialny kod Pythona w oknie kodu i wykonasz go.

Wprowadź następujące dwie instrukcje Pythona w oknie kodu -

import time
print(time.ctime())

Wykonywanie kodu

Aby wykonać kod, kliknij strzałkę po lewej stronie okna kodu.

Po chwili zobaczysz dane wyjściowe pod oknem kodu, jak pokazano tutaj -

Mon Jun 17 05:58:40 2019

Możesz wyczyścić dane wyjściowe w dowolnym momencie, klikając ikonę po lewej stronie ekranu wyjściowego.

Dodawanie komórek kodu

Aby dodać więcej kodu do notesu, wybierz następujące opcje menu opcje -

Insert / Code Cell

Alternatywnie, po prostu najedź myszą na środek dolnej części komórki Kod. KiedyCODE i TEXTpojawią się przyciski, kliknij KOD, aby dodać nową komórkę. Jest to pokazane na poniższym zrzucie ekranu -

Nowa komórka kodu zostanie dodana pod bieżącą komórką. Dodaj następujące dwie instrukcje w nowo utworzonym oknie kodu -

time.sleep(5)
print (time.ctime())

Teraz, jeśli uruchomisz tę komórkę, zobaczysz następujące dane wyjściowe -

Mon Jun 17 04:50:27 2019

Z pewnością różnica czasu między dwoma ciągami czasu nie wynosi 5 sekund. Jest to oczywiste, ponieważ wstawienie nowego kodu zajęło trochę czasu. Colab pozwala na uruchomienie całego kodu wewnątrz Twojego notebooka bez przerwy.

Uruchom wszystko

Aby uruchomić cały kod w swoim notebooku bez przerwy, wykonaj następujące opcje menu -

Runtime / Reset and run all…

Da ci dane wyjściowe, jak pokazano poniżej -

Zwróć uwagę, że różnica czasu między dwoma wyjściami wynosi teraz dokładnie 5 sekund.

Powyższą akcję można również zainicjować, wykonując następujące dwie opcje menu -

Runtime / Restart runtime…

lub

Runtime / Restart all runtimes…

Śledzony przez

Runtime / Run all

Zapoznaj się z różnymi opcjami menu pod Runtime menu, aby zapoznać się z różnymi dostępnymi opcjami wykonania notatnika.

Zmiana kolejności komórek

Gdy Twój notatnik zawiera dużą liczbę komórek kodu, możesz napotkać sytuacje, w których chciałbyś zmienić kolejność wykonywania tych komórek. Możesz to zrobić, zaznaczając komórkę, którą chcesz przenieść, i klikając plikUP CELL lub DOWN CELL przyciski pokazane na poniższym zrzucie ekranu -

Możesz kliknąć przyciski wiele razy, aby przesunąć komórkę o więcej niż jedną pozycję.

Usuwanie komórki

Podczas opracowywania projektu być może wprowadziłeś do notesu kilka niechcianych komórek. Możesz łatwo usunąć takie komórki z projektu za pomocą jednego kliknięcia. Kliknij ikonę kropkowaną pionowo w prawym górnym rogu komórki kodu.

Kliknij na Delete cell opcja, a bieżąca komórka zostanie usunięta.

Teraz, gdy nauczyłeś się obsługi banalnego notatnika, poznajmy inne możliwości Colab.

Ponieważ komórka kodu obsługuje pełną składnię Pythona, możesz użyć Pythona commentsw oknie kodu, aby opisać kod. Jednak często do zilustrowania algorytmów ML potrzeba czegoś więcej niż zwykłego komentarza tekstowego. ML intensywnie wykorzystuje matematykę i aby wyjaśnić te terminy i równania swoim czytelnikom, potrzebujesz edytora obsługującego LaTex - język do reprezentacji matematycznych. Colab zapewniaText Cells w tym celu.

Komórka tekstowa zawierająca kilka równań matematycznych zwykle używanych w ML jest pokazana na poniższym zrzucie ekranu -

Idąc dalej w tym rozdziale, zobaczymy kod generujący powyższe dane wyjściowe.

Komórki tekstowe są formatowane przy użyciu markdown- prosty język znaczników. Zobaczmy teraz, jak dodać komórki tekstowe do notatnika i dodać do niego tekst zawierający równania matematyczne.

Przykłady Markdown

Przyjrzyjmy się kilku przykładom składni języka znaczników, aby zademonstrować jego możliwości.

Wpisz następujący tekst w komórce Tekst.

This is **bold**.
This is *italic*.
This is ~strikethrough~.

Dane wyjściowe powyższych poleceń są renderowane po prawej stronie komórki, jak pokazano tutaj.

Równania matematyczne

Dodać Text Cell do swojego notatnika i wprowadź następującą składnię markdown w oknie tekstowym -

$\sqrt{3x-1}+(1+x)^2$

Zobaczysz natychmiastowe renderowanie kodu przeceny w panelu po prawej stronie komórki tekstowej. Jest to pokazane na poniższym zrzucie ekranu -

Trafienie Enter a kod przeceny znika z komórki tekstowej i wyświetlane są tylko wyrenderowane dane wyjściowe.

Spróbujmy innego, bardziej skomplikowanego równania, jak pokazano tutaj -

$e^x = \sum_{i = 0}^\infty \frac{1}{i!}x^i$

Wyrenderowany wynik jest pokazany tutaj dla szybkiego odniesienia.

Kod przykładowych równań

Oto kod przykładowych równań pokazanych na wcześniejszym zrzucie ekranu -

Constraints are
   - $3x_1 + 6x_2 + x_3 =< 28$
   - $7x_1 + 3x_2 + 2x_3 =< 37$
   - $4x_1 + 5x_2 + 2x_3 =< 19$
   - $x_1,x_2,x_3 >=0 $

The trial vector is calculated as follows:
- $u_i(t) = x_i(t) + \beta(\hat{x}(t) − x_i(t)) + \beta \sum_{k = 1}^{n_v}(x_{i1,k}(t) − x_{i2,k}(t))$
$f(x_1, x_2) = 20 + e - 20exp(-0.2 \sqrt {\frac {1}{n} (x_1^2 + x_2^2)}) - exp (\frac {1}{n}(cos(2\pi x_1) + cos(2\pi x_2))$

$x ∈ [-5, 5]$
>$A_{m,n} =
   \begin{pmatrix}
   a_{1,1} > a_{1,2} > \cdots > a_{1,n} \\
   a_{2,1} > a_{2,2} > \cdots > a_{2,n} \\
   \vdots > \vdots > \ddots > \vdots \\
   a_{m,1} > a_{m,2} > \cdots > a_{m,n}
   \end{pmatrix}$

Opisanie pełnej składni znaczników wykracza poza zakres tego samouczka. W następnym rozdziale zobaczymy, jak zapisać swoją pracę.

Colab umożliwia zapisanie pracy na Dysku Google lub nawet bezpośrednio w repozytorium GitHub.

Zapisuję na Dysku Google

Colab umożliwia zapisanie pracy na Dysku Google. Aby zapisać notatnik, wybierz następujące opcje menu -

File / Save a copy in Drive…

Zobaczysz następujący ekran -

Akcja utworzy kopię twojego notatnika i zapisze ją na dysku. Później możesz zmienić nazwę kopii na wybraną przez siebie nazwę.

Zapisywanie do GitHub

Możesz również zapisać swoją pracę w repozytorium GitHub, wybierając następujące opcje menu -

File / Save a copy in GitHub...

Wybór menu pokazano na poniższym zrzucie ekranu w celu szybkiego odniesienia -

Będziesz musiał poczekać, aż zobaczysz ekran logowania do GitHub.

Teraz wprowadź swoje poświadczenia. Jeśli nie masz repozytorium, utwórz nowe i zapisz projekt, jak pokazano na zrzucie ekranu poniżej -

W następnym rozdziale dowiemy się, jak dzielić się swoją pracą z innymi.

Aby udostępnić utworzony notatnik innym współtwórcom, możesz udostępnić kopię, którą utworzyłeś na swoim Dysku Google.

Aby opublikować notatnik dla ogółu odbiorców, możesz udostępnić go ze swojego repozytorium GitHub.

Jest jeszcze jeden sposób na udostępnienie swojej pracy - klikając na SHARElink w prawym górnym rogu notesu Colab. Otworzy się okno udostępniania, jak pokazano tutaj -

Możesz wprowadzić identyfikatory e-mail osób, którym chcesz udostępnić bieżący dokument. Możesz ustawić rodzaj dostępu, wybierając jedną z trzech opcji pokazanych na powyższym ekranie.

Kliknij na Get shareable linkmożliwość uzyskania adresu URL swojego notatnika. Znajdziesz opcje, dla których możesz udostępniać w następujący sposób -

  • Określona grupa osób

  • Współpracownicy w Twojej organizacji

  • Każdy, kto ma link

  • Wszystkie publiczne w sieci

Teraz. wiesz, jak stworzyć / wykonać / zapisać / udostępnić notatnik. W komórce Code do tej pory używaliśmy Pythona. Komórka kodu może również służyć do wywoływania poleceń systemowych. To jest wyjaśnione dalej.

Jupyter zawiera skróty do wielu typowych operacji systemowych. Komórka Colab Code obsługuje tę funkcję.

Proste polecenia

Wprowadź następujący kod w komórce Code, która używa polecenia systemowego echo.

message = 'A Great Tutorial on Colab by Tutorialspoint!'
greeting = !echo -e '$message\n$message'
greeting

Teraz, jeśli uruchomisz komórkę, zobaczysz następujące dane wyjściowe -

['A Great Tutorial on Colab by Tutorialspoint!', 'A Great Tutorial on Colab by Tutorialspoint!']

Pobieranie danych zdalnych

Spójrzmy na inny przykład, który ładuje zestaw danych ze zdalnego serwera. Wpisz następujące polecenie w komórce Kod -

!wget http://mlr.cs.umass.edu/ml/machine-learning-databases/adult/adult.data -P "/content/drive/My Drive/app"

Jeśli uruchomisz kod, zobaczysz następujące dane wyjściowe -

--2019-06-20 10:09:53-- http://mlr.cs.umass.edu/ml/machine-learning-databases/adult/adult.data
Resolving mlr.cs.umass.edu (mlr.cs.umass.edu)... 128.119.246.96
Connecting to mlr.cs.umass.edu (mlr.cs.umass.edu)|128.119.246.96|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 3974305 (3.8M) [text/plain] 
Saving to: ‘/content/drive/My Drive/app/adult.data.1’

adult.data.1 100%[===================>] 3.79M 1.74MB/s in 2.2s

2019-06-20 10:09:56 (1.74 MB/s) - ‘/content/drive/My Drive/app/adult.data.1’ saved [3974305/3974305]

Jak mówi wiadomość, plik adult.data.1plik został dodany do dysku. Możesz to sprawdzić, sprawdzając zawartość folderu na dysku. Alternatywnie wpisz następujący kod w nowej komórce Kod -

import pandas as pd
data = pd.read_csv("/content/drive/My Drive/app/adult.data.1")
data.head(5)

Uruchom kod teraz, a zobaczysz następujące dane wyjściowe -

Podobnie, większość poleceń systemowych można wywołać w komórce kodu, poprzedzając polecenie znakiem wykrzyknika (!). Spójrzmy na inny przykład, zanim podamy pełną listę poleceń, które możesz wywołać.

Klonowanie repozytorium Git

Możesz sklonować całe repozytorium GitHub do Colab przy użyciu rozszerzenia gitKomenda. Na przykład, aby sklonować samouczek keras, wpisz następujące polecenie w komórce Kod -

!git clone https://github.com/wxs/keras-mnist-tutorial.git

Po pomyślnym uruchomieniu polecenia zobaczysz następujące dane wyjściowe -

Cloning into 'keras-mnist-tutorial'...
remote: Enumerating objects: 26, done.
remote: Total 26 (delta 0), reused 0 (delta 0), pack-reused 26
Unpacking objects: 100% (26/26), done.

Po sklonowaniu repozytorium zlokalizuj w nim projekt Jupyter (np. MINST w keras.ipyab), kliknij prawym przyciskiem myszy nazwę pliku i wybierz Open With / Colaboratory opcja menu, aby otworzyć projekt w Colab.

Aliasy systemowe

Aby uzyskać listę skrótów do typowych operacji, wykonaj następujące polecenie -

!ls /bin

Zobaczysz listę w oknie wyjściowym, jak pokazano poniżej -

bash*             journalctl*       sync*
bunzip2*          kill*             systemctl*
bzcat*            kmod*             systemd@
bzcmp@            less*             systemd-ask-password*
bzdiff*           lessecho*         systemd-escape*
bzegrep@          lessfile@         systemd-hwdb*
bzexe*            lesskey*          systemd-inhibit*
bzfgrep@          lesspipe*         systemd-machine-id-setup*
bzgrep*           ln*               systemd-notify*
bzip2*            login*            systemd-sysusers*
bzip2recover*     loginctl*         systemd-tmpfiles*
bzless@           ls*               systemd-tty-ask-password-agent*
bzmore*           lsblk*            tar*
cat*              lsmod@            tempfile*
chgrp*            mkdir*            touch*
chmod*            mknod*            true*
chown*            mktemp*           udevadm*
cp*               more*             ulockmgr_server*
dash*             mount*            umount*
date*             mountpoint*       uname*
dd*               mv*               uncompress*
df*               networkctl*       vdir*
dir*              nisdomainname@    wdctl*
dmesg*            pidof@            which*
dnsdomainname@    ps*               ypdomainname@
domainname@       pwd*              zcat*
echo*             rbash@            zcmp*
egrep*            readlink*         zdiff*
false*            rm*               zegrep*
fgrep*            rmdir*            zfgrep*
findmnt*          run-parts*        zforce*
fusermount*       sed*              zgrep*
grep*             sh@               zless*
gunzip*           sh.distrib@       zmore*
gzexe*            sleep*            znew*
gzip*             stty*
hostname*         su*

Wykonaj dowolne z tych poleceń, tak jak to zrobiliśmy dla echo i wget. W następnym rozdziale zobaczymy, jak wykonać wcześniej utworzony kod Pythona.

Załóżmy, że masz już opracowany kod Pythona, który jest przechowywany na Twoim Dysku Google. Teraz będziesz chciał załadować ten kod w Colab do dalszych modyfikacji. W tym rozdziale zobaczymy, jak załadować i uruchomić kod przechowywany na Twoim Dysku Google.

Napęd montażowy

Tools / Command palette

Zobaczysz listę poleceń, jak pokazano na tym zrzucie ekranu -

Wpisz kilka liter, np. „M” w polu wyszukiwania, aby znaleźć polecenie montowania. WybierzMount Drivepolecenie z listy. Poniższy kod zostanie wstawiony do komórki Code.

# Run this cell to mount your Google Drive.
from google.colab import drive
drive.mount('/content/drive')

Jeśli uruchomisz ten kod, zostaniesz poproszony o wprowadzenie kodu uwierzytelniającego. Odpowiedni ekran wygląda jak pokazano poniżej -

Otwórz powyższy adres URL w przeglądarce. Zostaniesz poproszony o zalogowanie się na swoje konto Google. Teraz zobaczysz następujący ekran -

Jeśli udzielisz uprawnień, otrzymasz kod w następujący sposób -

Wytnij i wklej ten kod w komórce Kod i naciśnij ENTER. Po chwili dysk zostanie zamontowany, jak widać na poniższym zrzucie ekranu -

Teraz możesz już korzystać z zawartości swojego dysku w Colab.

Wyświetlanie zawartości dysku

Możesz wyświetlić zawartość dysku za pomocą polecenia ls w następujący sposób -

!ls "/content/drive/My Drive/Colab Notebooks"

To polecenie wyświetli zawartość folderu Colab Notebooks. Przykładowe dane wyjściowe zawartości mojego dysku są pokazane tutaj -

Greeting.ipynb hello.py LogisticRegressionCensusData.ipynb LogisticRegressionDigitalOcean.ipynb MyFirstColabNotebook.ipynb SamplePlot.ipynb

Uruchamianie kodu w języku Python

Teraz powiedzmy, że chcesz uruchomić plik Pythona o nazwie hello.py przechowywany na Twoim Dysku Google. Wpisz następujące polecenie w komórce Kod -

!python3 "/content/drive/My Drive/Colab Notebooks/hello.py"

Zawartość hello.py jest podana tutaj w celach informacyjnych -

print("Welcome to TutorialsPoint!")

Zobaczysz teraz następujące dane wyjściowe -

Welcome to TutorialsPoint!

Oprócz wyjścia tekstowego Colab obsługuje również wyjścia graficzne. Zobaczymy to w następnym rozdziale.

Colab obsługuje również bogate wyniki, takie jak wykresy. Wpisz następujący kod w komórce Kod.

import numpy as np
from matplotlib import pyplot as plt

y = np.random.randn(100)
x = [x for x in range(len(y))]

plt.plot(x, y, '-')
plt.fill_between(x, y, 200, where = (y > 195), facecolor='g', alpha=0.6)

plt.title("Sample Plot")
plt.show()

Teraz, jeśli uruchomisz kod, zobaczysz następujące dane wyjściowe -

Zwróć uwagę, że dane wyjściowe graficzne są wyświetlane w sekcji danych wyjściowych komórki Kod. Podobnie będziesz mógł tworzyć i wyświetlać kilka typów wykresów w całym kodzie programu.

Teraz, po zapoznaniu się z podstawami Colab, przejdźmy do funkcji Colab, które ułatwiają tworzenie kodu w Pythonie.

Współcześni programiści w dużym stopniu polegają na pomocy kontekstowej w składni języka i bibliotek. Dlatego właśnie IDE są szeroko stosowane. Edytor notatników Colab zapewnia tę możliwość.

W tym rozdziale zobaczmy, jak poprosić o pomoc kontekstową podczas pisania kodu Pythona w Colab. Postępuj zgodnie z instrukcjami podanymi w razie potrzeby.

Lista funkcji

Step 1 - Otwórz nowy notatnik i wpisz następujący kod w komórce Kod -

import torch

Step 2- Uruchom kod, klikając ikonę Uruchom w lewym panelu komórki Kod. Dodaj kolejną komórkę kodu i wpisz następujący kod -

Tensor = torch.

W tym momencie załóżmy, że zapomniałeś, jakie są różne funkcje dostępne w programie torchmoduł. Możesz poprosić o pomoc kontekstową dotyczącą nazw funkcji, naciskając klawiszTABklucz. Zwróć uwagę na obecnośćDOT po torchsłowo kluczowe. Bez tego punktu nie zobaczysz pomocy kontekstowej. Twój ekran wyglądałby tak, jak pokazano na zrzucie ekranu tutaj -

Teraz wybierz żądaną funkcję z listy i kontynuuj kodowanie.

Dokumentacja funkcji

Colab udostępnia dokumentację dotyczącą dowolnego function lub class jako pomoc kontekstowa.

Wpisz następujący kod w oknie kodu -

Tensor = torch.cos(

Teraz uderz TAB i zobaczysz dokumentację na cosw wyskakującym okienku, jak pokazano na zrzucie ekranu tutaj. Pamiętaj, że musisz wpisaćopen parenthesis przed naciśnięciem TAB.

W następnym rozdziale zobaczymy Magics w Colab, który pozwala nam robić potężniejsze rzeczy niż to, co zrobiliśmy z aliasami systemowymi.

Magia to zestaw poleceń systemowych, które zapewniają mini rozbudowany język poleceń.

Magia jest dwojakiego rodzaju -

  • Magia liniowa

  • Magia komórkowa

Magia liniowa, jak nazwa wskazuje, składa się z pojedynczej linii poleceń, podczas gdy magia komórki obejmuje całe ciało komórki kodu.

W przypadku magii liniowej polecenie jest poprzedzone pojedynczym znakiem%, a w przypadku magii komórkowej dwoma% znakami (%%).

Spójrzmy na kilka przykładów obu, aby je zilustrować.

Line Magics

Wpisz następujący kod w komórce kodu -

%ldir

Zobaczysz zawartość lokalnego katalogu, coś takiego -

drwxr-xr-x 3 root 4096 Jun 20 10:05 drive/
drwxr-xr-x 1 root 4096 May 31 16:17 sample_data/

Wypróbuj następujące polecenie -

%history

Przedstawia pełną historię poleceń, które wykonałeś wcześniej.

Cell Magics

Wpisz następujący kod w swojej komórce kodu -

%%html
<marquee style='width: 50%; color: Green;'>Welcome to Tutorialspoint!</marquee>

Teraz, jeśli uruchomisz kod i zobaczysz przewijaną wiadomość powitalną na ekranie, jak pokazano tutaj -

Poniższy kod doda SVG do twojego dokumentu.

%%html
<svg xmlns="https://www.w3.org/2000/svg" viewBox="0 0 600 400" width="400" height="400">
   <rect x="10" y="00" width="300" height="100" rx="0" style="fill:orange; stroke:black; fill-opacity:1.0" />
   <rect x="10" y="100" width="300" height="100" rx="0" style="fill:white; stroke:black; fill-opacity:1.0;" />
   <rect x="10" y="200" width="300" height="100" rx="0" style="fill:green; stroke:black; fill-opacity:1.0;" />
</svg>

Jeśli uruchomisz kod, zobaczysz następujące dane wyjściowe -

Lista magii

Aby uzyskać pełną listę obsługiwanych magii, wykonaj następujące polecenie -

%lsmagic

Zobaczysz następujący wynik -

Available line magics:
%alias %alias_magic %autocall %automagic %autosave %bookmark %cat %cd %clear
%colors %config %connect_info %cp %debug %dhist %dirs %doctest_mode %ed %edit
%env %gui %hist %history %killbgscripts %ldir %less %lf %lk %ll %load %load_ext
%loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro
%magic %man %matplotlib %mkdir %more %mv %notebook %page %pastebin %pdb %pdef
%pdoc %pfile %pinfo %pinfo2 %pip %popd %pprint %precision %profile %prun
%psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall
%rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run %save
%sc %set_env %shell %store %sx %system %tb %tensorflow_version %time %timeit
%unalias %unload_ext %who %who_ls %whos %xdel %xmode

Available cell magics:
%%! %%HTML %%SVG %%bash %%bigquery %%capture %%debug %%file %%html %%javascript
%%js %%latex %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script
%%sh %%shell %%svg %%sx %%system %%time %%timeit %%writefile

Automagic is ON, % prefix IS NOT needed for line magics.

Następnie nauczysz się innej potężnej funkcji Colab do ustawiania zmiennych programu w czasie wykonywania.

Colab zapewnia bardzo przydatne narzędzie o nazwie Formularze, które umożliwia akceptowanie danych wejściowych od użytkownika w czasie wykonywania. Przejdźmy teraz, aby zobaczyć, jak dodawać formularze do notesu.

Dodawanie formularza

We wcześniejszej lekcji użyłeś następującego kodu, aby utworzyć opóźnienie czasowe -

import time
print(time.ctime())
time.sleep(5)
print (time.ctime())

Załóżmy, że chcesz, aby użytkownik ustawił opóźnienie czasowe zamiast stałego opóźnienia wynoszącego 5 sekund. W tym celu możesz dodać formularz do komórki Kod, aby zaakceptować czas snu.

Otwórz nowy notatnik. Kliknij naOptions(kropki w pionie) menu. Pojawi się menu podręczne, jak widać na poniższym zrzucie ekranu -

Teraz wybierz Add a formopcja. Doda formularz do komórki kodu z domyślnym tytułem, jak widać na zrzucie ekranu tutaj -

Aby zmienić tytuł formularza, kliknij Settingsprzycisk (ikona ołówka po prawej stronie). Pojawi się ekran ustawień, jak pokazano tutaj:

Zmień tytuł formularza na “Form”i zapisz formularz. Możesz użyć innej, wybranej przez siebie nazwy. Zauważ, że dodaje@title do komórki kodu.

Później możesz sprawdzić inne opcje na powyższym ekranie. W następnej sekcji dowiemy się, jak dodawać pola wejściowe do formularza.

Dodawanie pól formularza

Aby dodać pole formularza, kliknij Options menu w komórce Kod, kliknij Formaby wyświetlić podmenu. Ekran będzie wyglądał jak poniżej -

Wybierz Add a form fieldopcja menu. Pojawi się okno dialogowe, jak widać tutaj -

Zostawić Form field type do input. Zmienić Variable name do sleeptime i ustaw Variable type do integer. Zapisz zmiany, klikającSave przycisk.

Twój ekran będzie teraz wyglądał następująco z rozszerzeniem sleeptime zmienna dodana do kodu.

Następnie zobaczmy, jak przetestować formularz, dodając kod, który używa sleeptime zmienna.

Formularz testowy

Dodaj nową komórkę Kod pod komórką formularza. Użyj kodu podanego poniżej -

import time
print(time.ctime())
time.sleep(sleeptime)
print (time.ctime())

Użyłeś tego kodu we wcześniejszej lekcji. Drukuje aktualny czas, czeka przez określony czas i drukuje nowy znacznik czasu. Ilość czasu, przez jaki program oczekuje, jest ustawiana w wywołanej zmiennejsleeptime.

Teraz wróć do Form Cell i wpisz wartość 2 dla sleeptime. Wybierz następujące menu -

Runtime / Run all

Spowoduje to uruchomienie całego notebooka. Możesz zobaczyć ekran wyjściowy, jak pokazano poniżej.

Zwróć uwagę, że przyjęto wartość wejściową 2 dla

pora spać

. Spróbuj zmienić to na inną wartość i Run all zobaczyć efekt.

Wprowadzanie tekstu

Aby zaakceptować wprowadzenie tekstu w formularzu, wprowadź następujący kod w nowej komórce kodu.

name = 'Tutorialspoint' #@param {type:"string"}
print(name)

Teraz, jeśli uruchomisz komórkę Code, dowolna nazwa, którą ustawisz w formularzu, zostanie wydrukowana na ekranie. Domyślnie na ekranie pojawią się następujące dane wyjściowe.

Tutorialspoint

Zauważ, że możesz użyć opcji menu, jak pokazano dla danych wejściowych całkowitych, aby utworzyć plik Text pole wejściowe.

Lista rozwijana

Aby dodać listę rozwijaną do formularza, użyj następującego kodu -

color = 'green' #@param ["red", "green", "blue"]
print(color)

Spowoduje to utworzenie listy rozwijanej z trzema wartościami - czerwoną, zieloną i niebieską. Domyślny wybór jest zielony.

Lista rozwijana jest pokazana na zrzucie ekranu poniżej -

Wprowadzenie daty

Formularz Colab umożliwia akceptowanie dat w kodzie z walidacjami. Użyj poniższego kodu, aby wprowadzić datę w kodzie.

#@title Date fields
date_input = '2019-06-03' #@param {type:"date"}
print(date_input)

Ekran formularza wygląda następująco.

Spróbuj wprowadzić nieprawidłową wartość daty i obserwuj sprawdzanie poprawności.

Do tej pory nauczyłeś się, jak używać Colab do tworzenia i wykonywania notatników Jupyter za pomocą kodu Pythona. W następnym rozdziale zobaczymy, jak zainstalować popularne biblioteki ML w swoim notatniku, aby móc ich używać w kodzie Pythona.

Colab obsługuje większość bibliotek uczenia maszynowego dostępnych na rynku. W tym rozdziale zajmiemy się krótkim omówieniem sposobu instalowania tych bibliotek w notatniku Colab.

Aby zainstalować bibliotekę, możesz użyć jednej z tych opcji -

!pip install

lub

!apt-get install

Keras

Keras, napisany w Pythonie, działa na TensorFlow, CNTK lub Theano. Umożliwia łatwe i szybkie prototypowanie aplikacji sieci neuronowych. Obsługuje zarówno sieci konwolucyjne (CNN), jak i rekurencyjne, a także ich kombinacje. Bezproblemowo obsługuje GPU.

Aby zainstalować Keras, użyj następującego polecenia -

!pip install -q keras

PyTorch

PyTorch jest idealny do tworzenia aplikacji do uczenia głębokiego. Jest to zoptymalizowana biblioteka tensorów, która obsługuje GPU. Aby zainstalować PyTorch, użyj następującego polecenia -

!pip3 install torch torchvision

MxNet

Apache MxNet to kolejna elastyczna i wydajna biblioteka do głębokiego uczenia się. Aby zainstalować MxNet, wykonaj następujące polecenia -

!apt install libnvrtc8.0
!pip install mxnet-cu80

OpenCV

OpenCV to biblioteka widzenia komputerowego typu open source do tworzenia aplikacji do uczenia maszynowego. Posiada ponad 2500 zoptymalizowanych algorytmów, które obsługują kilka aplikacji, takich jak rozpoznawanie twarzy, identyfikacja obiektów, śledzenie poruszających się obiektów, zszywanie obrazów i tak dalej. Giganci tacy jak Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota używają tej biblioteki. Jest to bardzo przydatne do tworzenia aplikacji wizyjnych w czasie rzeczywistym.

Aby zainstalować OpenCV, użyj następującego polecenia -

!apt-get -qq install -y libsm6 libxext6 && pip install -q -U opencv-python

XGBoost

XGBoost to rozproszona biblioteka zwiększająca gradient, która działa w głównych środowiskach rozproszonych, takich jak Hadoop. Jest bardzo wydajny, elastyczny i przenośny. Implementuje algorytmy ML w ramach Gradient Boosting.

Aby zainstalować XGBoost, użyj następującego polecenia -

!pip install -q xgboost==0.4a30

GraphViz

Graphviz to oprogramowanie typu open source do wizualizacji wykresów. Jest używany do wizualizacji w sieciach, bioinformatyce, projektowaniu baz danych, a także w wielu dziedzinach, w których wymagany jest wizualny interfejs danych.

Aby zainstalować GraphViz, użyj następującego polecenia -

!apt-get -qq install -y graphviz && pip install -q pydot

W tym czasie nauczyłeś się tworzyć notatniki Jupyter zawierające popularne biblioteki uczenia maszynowego. Możesz teraz opracować modele uczenia maszynowego. Wymaga to dużej mocy obliczeniowej. Colab zapewnia darmowe GPU dla Twoich notebooków.

W następnym rozdziale dowiemy się, jak włączyć procesor graficzny w notebooku.

Google zapewnia bezpłatne GPU dla notebooków Colab.

Włączanie GPU

Aby włączyć GPU w notebooku, wybierz następujące opcje menu -

Runtime / Change runtime type

Zobaczysz następujący ekran jako wyjście -

Wybierz GPUa Twój notebook używałby darmowego procesora graficznego dostarczonego w chmurze podczas przetwarzania. Aby poczuć przetwarzanie GPU, spróbuj uruchomić przykładową aplikację zMNIST samouczek, który sklonowałeś wcześniej.

!python3 "/content/drive/My Drive/app/mnist_cnn.py"

Spróbuj uruchomić ten sam plik Pythona bez włączonego GPU. Czy zauważyłeś różnicę w szybkości wykonania?

Testowanie pod kątem GPU

Możesz łatwo sprawdzić, czy GPU jest włączony, wykonując następujący kod -

import tensorflow as tf
tf.test.gpu_device_name()

Jeśli GPU jest włączony, da następujące wyjście -

'/device:GPU:0'

Lista urządzeń

Jeśli chcesz poznać urządzenia używane podczas wykonywania Twojego notebooka w chmurze, wypróbuj następujący kod -

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

Zobaczysz dane wyjściowe w następujący sposób -

[name: "/device:CPU:0"
   device_type: "CPU"
   memory_limit: 268435456
   locality { }
   incarnation: 1734904979049303143, name: "/device:XLA_CPU:0"
   device_type: "XLA_CPU" memory_limit: 17179869184
   locality { } 
   incarnation: 16069148927281628039
   physical_device_desc: "device: XLA_CPU device", name: "/device:XLA_GPU:0"
   device_type: "XLA_GPU"
   memory_limit: 17179869184
   locality { }
   incarnation: 16623465188569787091
   physical_device_desc: "device: XLA_GPU device", name: "/device:GPU:0"
   device_type: "GPU"
   memory_limit: 14062547764
   locality {
      bus_id: 1
      links { } 
   }
   incarnation: 6674128802944374158
physical_device_desc: "device: 0, name: Tesla T4, pci bus id: 0000:00:04.0, compute capability: 7.5"]

Sprawdzanie pamięci RAM

Aby zobaczyć zasoby pamięci dostępne dla twojego procesu, wpisz następujące polecenie -

!cat /proc/meminfo

Zobaczysz następujący wynik -

MemTotal: 13335276 kB
MemFree: 7322964 kB
MemAvailable: 10519168 kB
Buffers: 95732 kB
Cached: 2787632 kB
SwapCached: 0 kB
Active: 2433984 kB
Inactive: 3060124 kB
Active(anon): 2101704 kB
Inactive(anon): 22880 kB
Active(file): 332280 kB
Inactive(file): 3037244 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 412 kB
Writeback: 0 kB
AnonPages: 2610780 kB
Mapped: 838200 kB
Shmem: 23436 kB
Slab: 183240 kB
SReclaimable: 135324 kB
SUnreclaim: 47916
kBKernelStack: 4992 kB
PageTables: 13600 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 6667636 kB
Committed_AS: 4801380 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 303092 kB
DirectMap2M: 5988352 kB
DirectMap1G: 9437184 kB

Jesteś teraz gotowy do tworzenia modeli uczenia maszynowego w Pythonie przy użyciu Google Colab.

Google Colab to potężna platforma do uczenia się i szybkiego tworzenia modeli uczenia maszynowego w Pythonie. Opiera się na notebooku Jupyter i wspiera rozwój zespołowy. Członkowie zespołu mogą udostępniać i jednocześnie edytować notatniki, nawet zdalnie. Notatniki można również publikować w serwisie GitHub i udostępniać ogółowi społeczeństwa. Colab obsługuje wiele popularnych bibliotek ML, takich jak PyTorch, TensorFlow, Keras i OpenCV. Ograniczeniem na dzień dzisiejszy jest to, że nie obsługuje jeszcze R ani Scali. Istnieje również ograniczenie dotyczące sesji i rozmiaru. Biorąc pod uwagę korzyści, są to małe wyrzeczenia, które trzeba poświęcić.