書籍「ゼロから作る Deep Learning」② 自然言語処理編の、言語学習において、「Google Colablratry」の GPU 機能を使うことで、約20倍、高速化することができました。
それを行う過程で、たくさんの問題に出会い、多くの方に助けていただきました。せっかくなので、情報をシェアしたいと思います。
Google Colaboratry とは
Google が提供してくれている無料のクラウドサービスです。
詳細は、後日、触れたいと思います。
なぜ、Google Colaboratory のサービスを使ったか
最大の理由は、無料で、GPU 機能を利用できるからです。
現在の私の環境では、簡単な言語学習でも2日間ほどかかってしまいます。
どのような問題が発生したか
大きく3個の問題が起こりました。
1 Python ファイルを import できない
① 問題点自体が分からない
② ファイルへのアクセス方法が分からない
③ ドライブのマウントができない
④ パスが通らない
⑤ import 方法が分からない
いくつもの壁を乗り越え、Pythonファイルの import をすることができました。最初の問題点が分からないときは、SNS の仲間の協力を得ることで突破しました。
次に、②〜⑤の問題点の解決には、インターネット検索によるネット上の情報が役に立ちました。その際、横で検索をサポートしてくれた息子の協力も大きかったです。
2 GPU 機能が利用できない
やっと、Google Colaboratory のサービスを利用して、プログラムを実行することができたので、GPU機能を有効にして実行することにしました。ところが、また問題が発生しました。
① GPU機能を有効にしたことによるプログラムの異常動作
② GPU機能の有効化に必要な環境設定
3 ファイルの更新ができない
今回、最大の難関と言っても良いかもしれません。考えられる限りの対応を行いましたが対応できず、諦めるしかない状況になりました。
結論を言うと、Google Colaboratry において行うファイルの更新は、リアルタイムに反映されないということです。そのことが分かるまで、無駄な時間を費やすことになりました。情報の共有の意味から、その過程と対応策を示します。
① 謎のエラーメッセージ
② sys 命令が実行できない
③ ファイルの更新ができない
Google Colaborarory の使用に関する注意点(解決策)
① ファイルへのアクセス方法
Google Colaboratory においては、例え同じフォルダにあっても、そのファイルにアクセスするためには、ドライブをマウント(要認証)して、ファイルへのパスを通す必要があります。その際、使用されるドライブやパスの名称は、世代や環境で異なるため、注意が必要です。以下は、私の環境の場合です。
# Google Colaboratry from google.colab import drive # ドライブのマウント drive.mount(‘/content/drive’) import sys # パスの設定 sys.path.append(‘/content/drive/My Drive/Colab Notebooks/’) from optimizer import SGD # ファイルのインポート ~ |
② GPU機能の有効化の方法
GPU機能を有効にするためには、プログラム内でフラグを、True にするだけでは動作しません。システム内のGPUスイッチをオンにする必要があります。
# Google Colaboratry ~ config.GPU = True # GPUの有効化 ~ |
「編集」タグ → 「ノートブックの設定」 → ハードウェアアクセラレータを「GPU」に設定 |
③ ファイル更新時の注意点
このGoogleのシステムにおいては、ファイルを更新したときには注意が必要です。画面上で変更されたことになっていても、それは実行時に反映されていないことがあります。
従って、ユーザは、変更した内容そのものが無効であると錯覚して、次々に変更を繰り返しますが、同じ状況(エラーメッセージ)が続き、戸惑うことになります。
JupyterLab のファイルを更新したら、毎回ランタイムの初期化を行う 「ランタイム」タグ → 「ランタイムの再起動」 |
importされるファイルを更新したら、実行時のディレクトリ内にあるキャッシュファイルを削除する Googole Drive 内に自動で作られるファイル「__pycache__」を削除する |