はじめに

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を使う

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.