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ć.