Google-colab-quick-guide

提供:Dev Guides
移動先:案内検索

Google Colab-はじめに

GoogleはAIの研究に非常に積極的です。 長年にわたり、Googleは TensorFlow と呼ばれるAIフレームワークと Colaboratory と呼ばれる開発ツールを開発しました。 現在、TensorFlowはオープンソースであり、2017年以降、GoogleはColaboratoryを無料で公開しました。 Colaboratoryは現在、Google Colabまたは単に Colab として知られています。

Googleが開発者に提供するもう1つの魅力的な機能は、GPUの使用です。 ColabはGPUをサポートしており、完全に無料です。 無料で公開する理由は、機械学習とデータサイエンスを教えるために、ソフトウェアをアカデミックの標準にすることです。 また、使用ごとに販売されるGoogle Cloud APIの顧客基盤を構築するという長期的な展望もあります。

理由に関係なく、Colabの導入により、機械学習アプリケーションの学習と開発が容易になりました。

それでは、Colabを始めましょう。

Google Colab-Google Colabとは何ですか?

以前に Jupyter ノートブックを使用したことがある場合は、すぐにGoogle Colabの使用方法を学習できます。 正確には、Colabは完全にクラウドで実行される無料のJupyterノートブック環境です。 最も重要なことは、セットアップを必要とせず、作成したノートブックをチームメンバーが同時に編集できることです。Googleドキュメントでドキュメントを編集する方法と同じです。 Colabは、ノートブックに簡単にロードできる一般的な多くの機械学習ライブラリをサポートしています。

Colabが提供するもの

プログラマーとして、Google Colabを使用して以下を実行できます。

  • Pythonでコードを記述して実行する
  • 数学の方程式をサポートするコードを文書化する
  • ノートブックの作成/アップロード/共有
  • Googleドライブとの間でノートブックをインポート/保存する
  • GitHubからノートブックをインポート/公開する
  • 外部データセットをインポートします Kaggleから
  • PyTorch、TensorFlow、Keras、OpenCVを統合する
  • 無料のGPUを備えた無料のクラウドサービス

Google Colab-初めてのColabノートブック

この章では、最初のささいなノートブックを作成して実行します。 必要に応じて指定された手順に従ってください。

-Colabはノートブックの保存に暗黙的にGoogleドライブを使用するため、先に進む前にGoogleドライブアカウントにログインしていることを確認してください。

コラボ検索

ステップ2 *-画面下部の *NEW PYTHON 3 NOTEBOOK リンクをクリックします。 下の画面に示すように、新しいノートブックが開きます。

新しいノートブック

お気づきかもしれませんが、ノートブックのインターフェースはJupyterで提供されるものと非常によく似ています。 Pythonコードを入力するコードウィンドウがあります。

ノートブック名を設定する

デフォルトでは、ノートブックはUntitledXX.ipynbという命名規則を使用します。 ノートブックの名前を変更するには、この名前をクリックして、ここに示すように編集ボックスに目的の名前を入力します-

ノートブック名の設定

このノートブックを MyFirstColabNotebook と呼びます。 そのため、編集ボックスにこの名前を入力し、Enterキーを押します。 ノートブックは、あなたが今与えた名前を取得します。

コードを入力する

コードウィンドウに簡単なPythonコードを入力して実行します。

コードウィンドウに次の2つのPythonステートメントを入力してください-

import time
print(time.ctime())

コードの実行

コードを実行するには、コードウィンドウの左側にある矢印をクリックします。

コードの実行

しばらくすると、ここに示すように、コードウィンドウの下に出力が表示されます-

Mon Jun 17 05:58:40 2019

出力表示の左側にあるアイコンをクリックすると、いつでも出力をクリアできます。

出力表示

コードセルの追加

ノートブックにさらにコードを追加するには、次の*メニュー*オプションを選択します-

Insert/Code Cell

または、コードセルの中央下にマウスを置いてください。 CODE および TEXT ボタンが表示されたら、CODEをクリックして新しいセルを追加します。 これは、以下のスクリーンショットに示されています-

コードテキストボタン

新しいコードセルが現在のセルの下に追加されます。 新しく作成されたコードウィンドウに次の2つのステートメントを追加します-

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

さて、このセルを実行すると、次の出力が表示されます-

Mon Jun 17 04:50:27 2019

確かに、2つの時間文字列の時間差は5秒ではありません。 新しいコードを挿入するのに時間がかかったので、これは明らかです。 Colabを使用すると、中断することなくノートブック内のすべてのコードを実行できます。

すべて実行

ノートブックのコード全体を中断せずに実行するには、次のメニューオプションを実行します-

Runtime/Reset and run all…

次のように出力されます-

すべて実行

2つの出力の時間差は正確に5秒になりました。

上記のアクションは、次の2つのメニューオプションを実行することでも開始できます-

Runtime/Restart runtime…

or

Runtime/Restart all runtimes…

に続く

Runtime/Run all
*Runtime* メニューの下のさまざまなメニューオプションを調べて、ノートブックを実行するために使用可能なさまざまなオプションを理解してください。

セルの順序を変更する

ノートブックに多数のコードセルが含まれている場合、これらのセルの実行順序を変更したい場合があります。 あなたは、あなたが移動したいセルを選択し、次のスクリーンショットに示されている UP CELL または DOWN CELL ボタンをクリックすることによってそれを行うことができます-

セルの順序の変更

ボタンを複数回クリックして、セルを複数の位置に移動できます。

セルを削除する

プロジェクトの開発中に、ノートブックに不要なセルをいくつか導入した可能性があります。 このようなセルは、ワンクリックでプロジェクトから簡単に削除できます。 コードセルの右上隅にある縦の点線のアイコンをクリックします。

セルの削除

[セルの削除]オプションをクリックすると、現在のセルが削除されます。

さて、ささいなノートブックを実行する方法を学んだので、Colabの他の機能を調べてみましょう。

Google Colab-コードの文書化

コードセルは完全なPython構文をサポートしているため、コードウィンドウでPython comments を使用してコードを記述できます。 ただし、多くの場合、MLアルゴリズムを説明するために、単純なテキストベースのコメント以上のものが必要です。 MLは数学を多用しており、読者にこれらの用語や方程式を説明するには、数学表現のための言語であるLaTexをサポートするエディターが必要です。 Colabは、この目的のために*テキストセル*を提供しています。

通常MLで使用されるいくつかの数式を含むテキストセルは、以下のスクリーンショットに示されています-

数学方程式

この章で先に進むと、上記の出力を生成するコードが表示されます。

テキストセルは、 markdown -単純なマークアップ言語を使用してフォーマットされます。 テキストセルをノートブックに追加し、数式を含むテキストを追加する方法を見てみましょう。

マークダウンの例

マークアップ言語の構文のいくつかの例を見て、その機能を示しましょう。

[テキスト]セルに次のテキストを入力します。

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

上記のコマンドの出力は、次に示すように、Cellの右側に表示されます。

マークダウンの例

数学の方程式

  • テキストセル*をノートブックに追加し、テキストウィンドウに次のマークダウン構文を入力します-
$\sqrt{3x-1}+(1+x)^2$

テキストセルの右側のパネルにマークダウンコードの即時レンダリングが表示されます。 これは、以下のスクリーンショットに示されています-

数学方程式テキストセル

*Enter* を押すと、マークダウンコードがテキストセルから消え、レンダリングされた出力のみが表示されます。

ここに示すように別のより複雑な方程式を試してみましょう-

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

クイックリファレンスとして、レンダリングされた出力をここに示します。

数式入力

サンプル方程式のコード

これは、以前のスクリーンショットに示されているサンプル方程式のコードです-

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}$

完全なマークアップ構文を記述することは、このチュートリアルの範囲外です。 次の章では、作業を保存する方法を見ていきます。

Google Colab-作業の保存

Colabでは、作業内容をGoogleドライブに保存したり、GitHubリポジトリに直接保存することもできます。

Googleドライブに保存しています

Colabでは、作業内容をGoogleドライブに保存できます。 ノートブックを保存するには、次のメニューオプションを選択します-

File/Save a copy in Drive…

次の画面が表示されます-

Googleドライブの保存

このアクションにより、ノートブックのコピーが作成され、ドライブに保存されます。 後で、コピーの名前を任意の名前に変更できます。

GitHubに保存する

次のメニューオプションを選択して、作業をGitHubリポジトリに保存することもできます-

File/Save a copy in GitHub...

メニューの選択は、クイックリファレンスのために次のスクリーンショットに示されています-

GitHubの保存

GitHubへのログイン画面が表示されるまで待つ必要があります。

ログイン画面GitHub

次に、資格情報を入力します。 リポジトリがない場合は、新しいものを作成し、下のスクリーンショットに示すようにプロジェクトを保存します-

GitHubにコピー

次の章では、あなたの作品を他の人と共有する方法を学びます。

Google Colab-ノートブックの共有

作成したノートブックを他の共同開発者と共有するには、作成したコピーをGoogleドライブで共有できます。

ノートブックを一般ユーザーに公開するには、GitHubリポジトリからノートブックを共有できます。

作業を共有するもう1つの方法があります。それは、Colabノートブックの右上隅にある SHARE リンクをクリックすることです。 これは、ここに示すように共有ボックスを開きます-

ノートブックの共有

現在のドキュメントを共有したい人のメールIDを入力できます。 上記の画面に表示されている3つのオプションから選択することにより、アクセスの種類を設定できます。

[共有可能なリンクを取得]オプションをクリックして、ノートブックのURLを取得します。 あなたは次のように共有するためのオプションを見つけるでしょう-

  • 特定の人々のグループ
  • 組織内の同僚
  • リンクを知っている人
  • ウェブ上で一般公開

Now. ノートブックを作成/実行/保存/共有する方法を知っています。 Codeセルでは、これまでPythonを使用しました。 コードセルは、システムコマンドを呼び出すためにも使用できます。 これについて次に説明します。

Google Colab-システムコマンドの呼び出し

Jupyterには、多くの一般的なシステム操作のショートカットが含まれています。 Colab Codeセルはこの機能をサポートしています。

簡単なコマンド

システムコマンドechoを使用するCodeセルに次のコードを入力します。

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

さて、セルを実行すると、次の出力が表示されます-

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

リモートデータの取得

リモートサーバーからデータセットを読み込む別の例を見てみましょう。 あなたのコードセルに次のコマンドを入力してください-

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

コードを実行すると、次の出力が表示されます-

--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]

メッセージが示すように、 adult.data.1 ファイルがドライブに追加されました。 これを確認するには、ドライブのフォルダーの内容を調べます。 あるいは、新しいコードセルに次のコードを入力します-

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

今すぐコードを実行すると、次の出力が表示されます-

リモートデータの取得

同様に、コマンドの先頭に感嘆符(!)を付けると、ほとんどのシステムコマンドをコードセルで呼び出すことができます。 起動できるコマンドの完全なリストを提供する前に、別の例を見てみましょう。

Gitリポジトリの複製

  • git *コマンドを使用して、GitHubリポジトリ全体をColabにクローンできます。 たとえば、kerasチュートリアルを複製するには、コードセルに次のコマンドを入力します-
!git clone https://github.com/wxs/keras-mnist-tutorial.git

コマンドが正常に実行された後、次の出力が表示されます-

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.

リポジトリのクローンが作成されたら、Jupyterプロジェクト(例: keras.ipyabのMINST)で、ファイル名を右クリックし、[で開く/共同]メニューオプションを選択して、Colabでプロジェクトを開きます。

システムエイリアス

一般的な操作のショートカットのリストを取得するには、次のコマンドを実行します-

!ls/bin

以下に示すように、出力ウィンドウにリストが表示されます-

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*
*echo* および *wget* に対して行ったように、これらのコマンドのいずれかを実行します。 次の章では、以前に作成したPythonコードを実行する方法について説明します。

Google Colab-外部Pythonファイルの実行

Googleドライブに保存されているPythonコードがすでにいくつか開発されているとします。 次に、さらに変更するためにこのコードをColabにロードします。 この章では、Googleドライブに保存されているコードを読み込んで実行する方法を説明します。

取り付けドライブ

Tools/Command palette

このスクリーンショットに示すように、コマンドのリストが表示されます-

マウントドライブ

検索ボックスに「m」などの文字をいくつか入力して、mountコマンドを見つけます。 リストから[ドライブのマウント]コマンドを選択します。 次のコードがコードセルに挿入されます。

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

このコードを実行すると、認証コードの入力を求められます。 対応する画面は次のようになります-

認証コード

ブラウザで上記のURLを開きます。 Googleアカウントにログインするように求められます。 今、あなたは次の画面が表示されます-

Google Aaccount

あなたがアクセス許可を付与する場合、次のようにコードを受け取ります-

Googleサインイン

[コード]セルにこのコードをカットアンドペーストして、Enterキーを押します。 しばらくすると、次のスクリーンショットに示すようにドライブがマウントされます-

Drive Mounted Enter

これで、ドライブの内容をColabで使用する準備が整いました。

ドライブの内容の一覧表示

次のようにlsコマンドを使用してドライブの内容を一覧表示できます-

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

このコマンドは、Colab Notebooksフォルダーの内容をリストします。 私のドライブの内容のサンプル出力はここに示されています-

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

Pythonコードの実行

ここで、Googleドライブに保存されているhello.pyというPythonファイルを実行するとします。 コードセルに次のコマンドを入力します-

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

hello.pyの内容は、参照用にここに記載されています-

print("Welcome to finddevguides!")

これで、次の出力が表示されます-

Welcome to finddevguides!

テキスト出力に加えて、Colabはグラフィカル出力もサポートしています。 これについては次の章で説明します。

Google Colab-グラフィカルな出力

Colabは、チャートなどの豊富な出力もサポートしています。 [コード]セルに次のコードを入力します。

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()

さて、コードを実行すると、次の出力が表示されます-

グラフィック出力

グラフィカル出力は、コードセルの出力セクションに表示されることに注意してください。 同様に、プログラムコード全体でいくつかのタイプのチャートを作成および表示できます。

Colabの基本を理解したので、Pythonコード開発を容易にするColabの機能に移りましょう。

Google Colab-コード編集ヘルプ

現在の開発者は、言語とライブラリの構文に対する状況依存ヘルプに大きく依存しています。 IDEが広く使用されているのはそのためです。 Colabノートブックエディタはこの機能を提供します。

この章では、ColabでPythonコードを作成する際に状況依存ヘルプを要求する方法を見てみましょう。 必要に応じて指定された手順に従ってください。

機能リスト

  • ステップ1 *-新しいノートブックを開き、コードセルに次のコードを入力します-
import torch
  • ステップ2 *-[コード]セルの左パネルにある[実行]アイコンをクリックして、コードを実行します。 別のコードセルを追加し、次のコードを入力します-
Tensor = torch.

この時点で、 torch モジュールで利用できるさまざまな機能を忘れていると仮定します。 TAB キーを押すと、関数名に関する状況依存ヘルプを要求できます。 torch キーワードの後に​​ DOT *が存在することに注意してください。 このDOTがないと、コンテキストヘルプは表示されません。 あなたの画面は、ここのスクリーンショットに示すようになります-

関数リスト

次に、リストから目的の機能を選択し、コーディングを進めます。

機能ドキュメント

Colabは、状況依存ヘルプとして、*関数*または*クラス*のドキュメントを提供します。

コードウィンドウに次のコードを入力します-

Tensor = torch.cos(

ここで、 TAB を押すと、ここのスクリーンショットに示すように、ポップアップウィンドウに cos のドキュメントが表示されます。 TABを押す前に*開き括弧*を入力する必要があることに注意してください。

関数ドキュメント

次の章では、システムエイリアスを使用した場合よりも強力な機能を実行できるColabの Magics について説明します。

Google Colab-Magics

Magicsは、一連のミニコマンド言語を提供するシステムコマンドのセットです。

魔法は2種類あります-

  • ラインマジック
  • セルマジック

名前としてのラインマジックは、コマンドの1行で構成されることを示し、セルマジックはコードセルの本体全体をカバーします。

ラインマジックの場合、コマンドの前に単一の%文字が追加され、セルマジックの場合、コマンドの前に2つの%文字(%%)が追加されます。

これらを説明するために、両方の例をいくつか見てみましょう。

ラインマジック

コードセルに次のコードを入力します-

%ldir

次のようなローカルディレクトリの内容が表示されます-

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

次のコマンドを試してください-

%history

これにより、以前に実行したコマンドの完全な履歴が表示されます。

セルマジック

あなたのコードセルに次のコードを入力します-

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

ここで、コードを実行すると、ここに示すように画面にウェルカムメッセージが表示されます-

Cell Magics

次のコードは、ドキュメントにSVGを追加します。

%%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>

コードを実行すると、次の出力が表示されます-

セルマジック出力

魔法リスト

サポートされている魔法の完全なリストを取得するには、次のコマンドを実行します-

%lsmagic

次の出力が表示されます-

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.

次に、実行時にプログラム変数を設定するColabの別の強力な機能を学習します。

Google Colab-フォームの追加

Colabには、実行時にユーザーからの入力を受け付けることができるFormsという非常に便利なユーティリティがあります。 次に、フォームをノートブックに追加する方法を見ていきましょう。

フォームを追加する

前のレッスンでは、次のコードを使用して時間遅延を作成しました-

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

5秒の固定遅延ではなく、ユーザーが時間遅延を設定するとします。 このために、コードセルにフォームを追加して、スリープ時間を受け入れることができます。

新しいノートブックを開きます。 オプション(縦に点線で囲まれた)メニューをクリックします。 以下のスクリーンショットに示すように、ポップアップメニューが表示されます-

フォームの追加

ここで、[フォームの追加]オプションを選択します。 ここでスクリーンショットに見られるように、デフォルトのタイトルでコードセルにフォームを追加します-

フォームのデフォルトタイトルを追加

フォームのタイトルを変更するには、*設定*ボタン(右側の鉛筆アイコン)をクリックします。 次に示すように、設定画面が表示されます。

フォーム設定の追加

フォームのタイトルを*“ Form” に変更して、フォームを保存します。 任意の名前を使用できます。 コードセルに *@ title が追加されることに注意してください。

後で上記の画面で他のオプションを調べることができます。 次のセクションでは、フォームに入力フィールドを追加する方法を学習します。

フォームフィールドの追加

フォームフィールドを追加するには、コードセルの「オプション」メニューをクリックし、「フォーム」をクリックしてサブメニューを表示します。 画面は以下のようになります-

フォームフィールドの追加

[フォームフィールドの追加]メニューオプションを選択します。 ここに見られるようにダイアログがポップアップします-

新しいフォームフィールドの追加

フォームフィールドタイプ*は *input のままにします。 変数名*を *sleeptime に変更し、*変数タイプ*を*整数*に設定します。 [保存]ボタンをクリックして、変更を保存します。

画面は次のようになり、 sleeptime 変数がコードに追加されます。

フォームフィールドタイプ

次に、 sleeptime 変数を使用するコードを追加して、フォームをテストする方法を見てみましょう。

テストフォーム

フォームセルの下に新しいコードセルを追加します。 以下のコードを使用してください-

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

前のレッスンでこのコードを使用しました。 現在の時刻を出力し、一定時間待機して、新しいタイムスタンプを出力します。 プログラムが待機する時間は、 sleeptime という変数に設定されます。

ここで、 Form セルに戻り、 sleeptime に値2を入力します。 次のメニューを選択します-

Runtime/Run all

これにより、ノートブック全体が実行されます。 以下に示すような出力画面を見ることができます。

ノートブック全体を実行

入力値が2になっていることに注意してください

睡眠時間

すべて実行

テキストを入力する

フォームでのテキスト入力を受け入れるには、新しいコードセルに次のコードを入力します。

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

ここで、コードセルを実行すると、フォームに設定した名前が画面に表示されます。 デフォルトでは、次の出力が画面に表示されます。

finddevguides

整数入力用に示されているメニューオプションを使用して、*テキスト*入力フィールドを作成できることに注意してください。

ドロップダウンリスト

フォームにドロップダウンリストを追加するには、次のコードを使用します-

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

これにより、赤、緑、青の3つの値を持つドロップダウンリストが作成されます。 デフォルトの選択は緑です。

ドロップダウンリストは、以下のスクリーンショットに示されています-

ドロップダウンリスト

日付入力

Colab Formを使用すると、コードの日付を検証付きで受け入れることができます。 次のコードを使用して、コードに日付を入力します。

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

フォーム画面は次のようになります。

日付入力

間違った日付値を入力して、検証を確認してください。

これまで、PythonコードでJupyterノートブックを作成および実行するためにColabを使用する方法を学びました。 次の章では、一般的なMLライブラリをノートブックにインストールして、Pythonコードで使用できるようにする方法について説明します。

Google Colab-MLライブラリのインストール

Colabは、市場で入手可能な機械学習ライブラリのほとんどをサポートしています。 この章では、これらのライブラリをColabノートブックにインストールする方法の概要を簡単に説明します。

ライブラリをインストールするには、これらのオプションのいずれかを使用できます-

!pip install

or

!apt-get install

ケラス

Pythonで書かれたKerasは、TensorFlow、CNTK、またはTheanoの上で実行されます。 ニューラルネットワークアプリケーションのプロトタイピングを簡単かつ高速に行うことができます。 畳み込みネットワーク(CNN)とリカレントネットワークの両方、およびそれらの組み合わせもサポートしています。 GPUをシームレスにサポートします。

Kerasをインストールするには、次のコマンドを使用します-

!pip install -q keras

パイトーチ

PyTorchは、ディープラーニングアプリケーションの開発に最適です。 これは最適化されたテンソルライブラリであり、GPU対応です。 PyTorchをインストールするには、次のコマンドを使用します-

!pip3 install torch torchvision

MxNet

Apache MxNetは、ディープラーニングのためのもう1つの柔軟で効率的なライブラリです。 MxNetをインストールするには、次のコマンドを実行します-

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

OpenCV

OpenCVは、機械学習アプリケーションを開発するためのオープンソースのコンピュータービジョンライブラリです。 2500を超える最適化されたアルゴリズムがあり、顔の認識、オブジェクトの識別、動くオブジェクトの追跡、画像のステッチなど、いくつかのアプリケーションをサポートします。 Google、Yahoo、Microsoft、Intel、IBM、Sony、Honda、Toyotaなどの巨人がこのライブラリを使用しています。 これは、リアルタイムビジョンアプリケーションの開発に非常に適しています。

OpenCVをインストールするには、次のコマンドを使用します-

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

XGBoost

XGBoostは、Hadoopなどの主要な分散環境で実行される分散勾配ブースティングライブラリです。 非常に効率的で、柔軟性があり、ポータブルです。 Gradient Boostingフレームワークの下でMLアルゴリズムを実装します。

XGBoostをインストールするには、次のコマンドを使用します-

!pip install -q xgboost==0.4a30

GraphViz

Graphvizは、グラフの視覚化のためのオープンソースソフトウェアです。 これは、ネットワーキング、バイオインフォマティクス、データベース設計での視覚化、およびデータの視覚的インターフェースが必要な多くのドメインでの問題に使用されます。

GraphVizをインストールするには、次のコマンドを使用します-

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

この時点で、一般的な機械学習ライブラリを含むJupyterノートブックを作成する方法を学習しました。 これで、機械学習モデルを開発する準備が整いました。 これには高い処理能力が必要です。 Colabは、ノートブックに無料のGPUを提供します。

次の章では、ノートブックでGPUを有効にする方法を学習します。

Google Colab-無料GPUの使用

Googleでは、Colabノートブックに無料のGPUを使用しています。

GPUを有効にする

ノートブックでGPUを有効にするには、次のメニューオプションを選択します-

Runtime/Change runtime type

次の画面が出力として表示されます-

GPUの有効化

*GPU* を選択すると、ノートブックは処理中にクラウドで提供される無料のGPUを使用します。 GPU処理の感触をつかむには、先ほど複製した *MNIST* チュートリアルからサンプルアプリケーションを実行してみてください。
!python3 "/content/drive/My Drive/app/mnist_cnn.py"

GPUを有効にせずに同じPythonファイルを実行してみてください。 実行速度の違いに気づきましたか?

GPUのテスト

次のコードを実行することにより、GPUが有効になっているかどうかを簡単に確認できます-

import tensorflow as tf
tf.test.gpu_device_name()

GPUが有効になっている場合、それは次の出力を提供します-

'/device:GPU:0'

デバイスのリスト

あなたがクラウドでノートブックの実行中に使用されるデバイスを知りたい場合は、次のコードを試してください-

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

次のように出力が表示されます-

[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"]

RAMの確認

プロセスで使用可能なメモリリソースを確認するには、次のコマンドを入力します-

!cat/proc/meminfo

次の出力が表示されます-

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

これで、Google Colabを使用してPythonで機械学習モデルを開発する準備が整いました。

Google Colab-結論

Google Colabは、Pythonで機械学習モデルを学習および迅速に開発するための強力なプラットフォームです。 Jupyterノートブックに基づいており、共同開発をサポートしています。 チームメンバーは、ノートブックをリモートで共有および編集できます。 ノートブックはGitHubで公開し、一般の人々と共有することもできます。 Colabは、PyTorch、TensorFlow、Keras、OpenCVなどの多くの一般的なMLライブラリをサポートしています。 今日の制限は、RまたはScalaをまだサポートしていないことです。 セッションとサイズにも制限があります。 利点を考えると、これらは人がする必要がある小さな犠牲です。