Featured image of post GoogleColabで引数付きpyファイルを実行する

GoogleColabで引数付きpyファイルを実行する

こんにちは。4月はブログが殆ど書けませんでした。

さて、知らない間にGoogleColabProが日本で使えるようになっていた!!ので、久しぶりにGoogleColabの記事を投稿します。GoogleColabは、Jupyter Notebooksをベースにしたクラウドサービスで制限付き無料でGPUを使用できるすごいサービスです。そしてGoogleColabProは無料の制限を一部取り除いた超格安(月額1072円)のサービスです。

🇧🇷 🇫🇷 🇩🇪 🇮🇳🇯🇵 🇹🇭 🇬🇧
Colab Pro is now available in Brazil, France, Germany, India, Japan, Thailand, and the United Kingdom.
Sign up at https://t.co/0z7WKH0F35
🇧🇷 🇫🇷 🇩🇪 🇮🇳🇯🇵 🇹🇭 🇬🇧

— Colaboratory (@GoogleColab) March 24, 2021

GoogleColabで引数付きpyファイルを呼び出す

GoogleColabを使う場合は、 ipynb(IPython Notebook)形式のファイルで作成しますが、作成したpyファイルのライブラリを使いたい場合、ipynbファイルに変換するのは面倒ですが、pyファイルを呼び出す事が出来ます。

今回はpyファイルを引数付きで実行し、更にその中で別の独自ライブラリをimportする、という事をしてみます。一応出来たんですが、ちょっと全てが思ったようにはならなかったので妥協しました。

(前提)Windowsで実行する場合

Windowsのディレクトリは以下のようになっている事が前提で進めます。train.pyをmodelの場所(model/cifar10.hdf5)を引数付きで実行して、その中でライブラリlenet.pyを使用する感じです。

1
2
3
4
5
6
│  train.py
└─model
        cifar10.hdf5
└─common
    └─cnn
            lenet.py

train.pyからsub.py(Class名はSubClass)を呼び出す場合は、以下のようにします。

train.py

1
 from common.cnn import SubClass

そして、main.pyを引数付きで実行する場合はコマンドプロンプトで以下を入力します。

1
python train.py --model model/cifar10.hdf5

GoogleColabで実行する場合

Googleドライブの任意の場所に以下のような構成でファイルを置きます。残念ながら、Windowsのフォルダ構成を引き継いだ方法は出来ませんでした。ライブラリlenet.pyを実行ファイルtrain.pyと同階層に置きます。

1
2
3
4
│  train.py
│  lenet.py
└─model
        cifar10.hdf5

では、GoogleColabで「ノートブックを新規作成」します。

まずGドライブをみれるようにします。

1
2
3
# Gドライブをマウント
from google.colab import drive
drive.mount('/content/gdrive')

上記を実行すると、以下のような表示になるのでURLをクリックし、コードを取得して入力すると「Mounted at /content/gdrive」を表示されます。

1
2
# GドライブにあるLoadするpyファイルを確認
!ls -la /content/gdrive/My\ Drive/Colab\ Notebooks/XXXXX/*.py

「lsコマンド」でtrain.py、lenet.pyを読むことが出来るか一応上記で確認できます。

1
2
3
# カレントディレクトリを設定
import os
os.chdir('/content/gdrive/My Drive/Colab Notebooks/XXXXX')

最後にpythonを実行して終わりです。これでGoogleColabでメインpyからサブモジュールpyを呼び出しする事が出来ました。

1
2
#実行
!python train.py --model model/cifar10.hdf5
Licensed under CC BY-NC-SA 4.0
Hugo で構築されています。
テーマ StackJimmy によって設計されています。