今回はDeep Learning界で大人気の「Google Collab(グーグル・コラボ)」の環境周りのコマンドチート集です。
グーグル・コラボはいくつかの制限はありますが、無料かつ安定したPython実行仮想環境です。TensorFlow実行に関係するパッケージは一通り予めインストールされているように見受けます。ランタイムをGPUに指定した場合は「nVIDIA Tesla K80」か「nVIDIA Tesla T4」のどちらかが割り当てられます(自分では選べない)。
1. Google Colabで使わせてもらっている仮想マシンのスペック表示
Google Collaboで下記のコマンド(先頭に「!」を付けることでコマンドシェルやUnixコマンドを実行)すると使わせてもらっている仮想マシンの各スペックを表示させることができる。
!cat /etc/issue
Ubuntu 18.04.3 LTS \n \l
!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 cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt arat md_clear arch_capabilities bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs 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 cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt arat md_clear arch_capabilities bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs bogomips : 4400.00 clflush size : 64 cache_alignment : 64 address sizes : 46 bits physical, 48 bits virtual power management:
!df -h
Filesystem Size Used Avail Use% Mounted on overlay 359G 30G 311G 9% / tmpfs 64M 0 64M 0% /dev tmpfs 6.4G 0 6.4G 0% /sys/fs/cgroup /dev/sda1 365G 41G 325G 12% /opt/bin tmpfs 6.4G 12K 6.4G 1% /var/colab shm 5.9G 4.0K 5.9G 1% /dev/shm tmpfs 6.4G 0 6.4G 0% /proc/acpi tmpfs 6.4G 0 6.4G 0% /proc/scsi tmpfs 6.4G 0 6.4G 0% /sys/firmware
!free -h
total used free shared buff/cache available Mem: 12G 632M 10G 892K 2.0G 11G Swap: 0B 0B 0B
!nvidia-smi
Tue Oct 29 05:15:39 2019 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 430.50 Driver Version: 418.67 CUDA Version: 10.1 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla K80 Off | 00000000:00:04.0 Off | 0 | | N/A 47C P0 62W / 149W | 69MiB / 11441MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| +-----------------------------------------------------------------------------+
2. TensorFlow関連フレームワークの情報の確認
import platform
print("python " + platform.python_version())
python 3.6.8
!pip show tensorflow
!echo '--'
!pip show tensorboard
!echo '--'
!pip show tensorflow-hub
Name: tensorflow Version: 1.14.0 Summary: TensorFlow is an open source machine learning framework for everyone. Home-page: https://www.tensorflow.org/ Author: Google Inc. Author-email: packages@tensorflow.org License: Apache 2.0 Location: /usr/local/lib/python3.6/dist-packages Requires: google-pasta, keras-applications, six, grpcio, astor, tensorboard, termcolor, protobuf, wrapt, keras-preprocessing, gast, absl-py, numpy, tensorflow-estimator, wheel Required-by: stable-baselines, magenta, fancyimpute -- Name: tensorboard Version: 1.14.0 Summary: TensorBoard lets you watch Tensors Flow Home-page: https://github.com/tensorflow/tensorboard Author: Google Inc. Author-email: packages@tensorflow.org License: Apache 2.0 Location: /usr/local/lib/python3.6/dist-packages Requires: grpcio, markdown, protobuf, absl-py, werkzeug, wheel, setuptools, six, numpy Required-by: tensorflow -- Name: tensorflow-hub Version: 0.5.0 Summary: TensorFlow Hub is a library to foster the publication, discovery, and consumption of reusable parts of machine learning models. Home-page: https://github.com/tensorflow/hub Author: Google LLC Author-email: packages@tensorflow.org License: Apache 2.0 Location: /usr/local/lib/python3.6/dist-packages Requires: numpy, protobuf, six Required-by:
3. ファイル関連の扱い
Google Driveのルートディレクトリが「./gdrive/’My Drive’」としてマウントされる
from google.colab import drive
drive.mount('/content/gdrive')
from IPython.display import Image
Image('パスを含む画像ファイル名')
from google.colab import files
files.download("パスを含むファイル名")
実行するとファイルセレクタが表示されるのでGUIでファイルを選択
from google.colab import files
uploaded = files.upload()
!wget "ファイルのURL"
4. Google Collaboの使用経過時間を表示する
Google Collaboには「セッションは12時間で切れる」と「90分間操作をしないとセッションが切れる」という利用上の制約があるので、前者の12時間タイマーであとどれくらいの時間が経過したかを表示する
!cat /proc/uptime | awk '{print $1 /60 /60.0f "hours (" $1 "sec) have passed"}'
1.8936hours (6816.97sec) have passed