Edited at

Google Colaboratory事始め

More than 1 year has passed since last update.


はじめに

Googleが機械学習の教育や研究用に提供しているツールである、Google Colaboratoryを試してみました。

Jupyter Notebook環境が無償で!使うことができるようです。

詳しくは以下を参照。

Google Colaboratoryよくある質問


Google Colaboratoryの起動

Google Colaboratoryにブラウザでアクセスするだけです。

ブラウザはGoogle Chromeを使用するとのこと。

アクセスすると、「最近のノートブック」と表示され、最近使ったファイルを参照することができます。


新規作成

ノートブックを新規作成 > PYTHON 2の新しいノートブック または, PYTHON 3の新しいノートブック を選択します。


リソースの確認

"!"をつけることで、Linuxのコマンドを実行することができます。

コードセルを追加し

!cat /proc/cpuinfo

実行結果は以下の通りとなりました。

processor   : 0

vendor_id : GenuineIntel
cpu family : 6
model : 79
model name : Intel(R) Xeon(R) CPU @ 2.20GHz
stepping : 0
microcode : 0x1
cpu MHz : 2200.000
cache size : 56320 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms rtm rdseed adx xsaveopt
bugs :
bogomips : 4400.00
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 79
model name : Intel(R) Xeon(R) CPU @ 2.20GHz
stepping : 0
microcode : 0x1
cpu MHz : 2200.000
cache size : 56320 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms rtm rdseed adx xsaveopt
bugs :
bogomips : 4400.00
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:


GPUの使用

ノートブック作成時には、GPUの割当がされていません。以下でGPUの割当を行います。

上部メニューの ランタイム > ランタイムのタイプを変更

 を選択。

ハードウェアアクセラレータNone から GPU に変更して保存。


PyTorchのインストール

PyTorchなどのライブラリを使用する場合、ノートブックのはじめにインストールを行う必要があります。

以下でPyTorchをインストールします。

# http://pytorch.org/

from os import path
from wheel.pep425tags import get_abbr_impl, get_impl_ver, get_abi_tag
platform = '{}{}-{}'.format(get_abbr_impl(), get_impl_ver(), get_abi_tag())

accelerator = 'cu80' if path.exists('/opt/bin/nvidia-smi') else 'cpu'

!pip install -q http://download.pytorch.org/whl/{accelerator}/torch-0.3.0.post4-{platform}-linux_x86_64.whl torchvision

# GPUの確認
import torch
use_gpu = torch.cuda.is_available()
print(use_gpu)

True が返ってくれば、先程のGPU割当が正しくできています。


ファイルアップロード、ダウンロード

ローカルで作成したファイルをColaboratoryにアップロードし、Colaboratory上で作成したファイルをダウンロードしてみます。

テストデータをアップロードして、処理結果をダウンロードようなときに使うと思います。


実験用のサンプルプログラム

まず、実験(アップロード用)のため、以下のスクリプトをローカルに保存(ファイル名:sample.py)しておきます。


sample.py

def helloworld():

print("hello world")

def writefile(fn):
with open(fn, "w") as f:
f.write("google Colaboratory file download sample")


hello worldとテキスト表示する関数と、テキストファイルを作成する関数が記載されています。


google Colaboratoryへのアップロード

Colaboratoryへのアップロードにはまず以下をインポートします。

from google.colab import files

以下のコードでファイルを選択し、アップロードができます。

f=files.upload()

files.upload()を実行した例

スクリーンショット 2018-03-25 17.46.36.png

ファイル選択からアップロードしたいファイル(今回は先程作成した、sample.py)を選択してください。


アップロードしたスクリプトの実行

では、先程アップロードしたスクリプトを実行してみましょう。

import sample #アップロードしたファイル名

sample.helloworld()

正しく実行されれば、結果にhello worldが表示されます。


補足

同名のファイルを複数回アップロードした場合、上書きではなく別名保存(例:sample (2).py)されるので注意してください。その場合、!rm ファイル名で削除することができます。


作成したファイルのダウンロード

ファイルのダウンロードは、files.download()で行います(要from google.colab import files)。

先程と同じく、アップロードしているスクリプトを実行します。

import sample #すでにimportしていれば不要

sample.writefile("download.txt") # download.txtというファイルを作成

files.download("download.txt") # 作成したファイルをダウンロード

実行すると、ブラウザのダウンロードに、download.txtがダウンロードされます。

ファイルを開いてスクリプトの通り、google Colaboratory file download sampleと書き込まれていればOKです。

以上がファイルアップロード、ダウンロードの方法です。これで一通りの作業ができるかと思います。


リンク

Google ColaboratoryでOpenCVを使う