1.Google Colabのランタイムをリモートホストに設定するまとめ
・Google Colabのランタイムを自宅内のリモートPCに変更する際のメモ
・リモートに直接接続する事は出来ないのでsshでポートフォワードする事になる
・TenforBoardはGoogle Colab内ではなくブラウザ内で表示させる事ができる
2.Google Colabのリモートホストランタイム
1)自PC2内でjupyterをセットアップ
sudo apt-get install openssh-server:w
次にjupyterに必要なパッケージのインストールを行います。
conda install -c anaconda jupyter # Colaboratory チーム作成のJupyter 拡張機能です。 conda install -c conda-forge jupyter_http_over_ws # Jediのv0.18とIPythonの7.19が相性悪いらしくアップデートしないと下記エラーがでます #「TypeError: __init__() got an unexpected keyword argument 'inputhook'」 conda update ipython -c conda-forge # Tensorboardを使う為です conda install -c conda-forge tensorflow
下記コマンドで拡張機能を有効にします。
jupyter serverextension enable --py jupyter_http_over_ws
jupyterを起動します
jupyter notebook \ --NotebookApp.allow_origin='https://colab.research.google.com' \ --port=8888 \ --NotebookApp.port_retries=0 \ --ip=* --no-browser
起動すると以下のようなログが流れれば起動に成功しています。token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxの部分をGドライブなりGmailなりにメモっておきます。
Or copy and paste one of these URLs:
http://localhost:8888/?token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
or http://127.0.0.1:8888/?token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
また、家庭内LANなどで自宅PC2のipアドレスがわからない場合はifconfigコマンドなどで調べて、こちらもメモっておきます。
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.105 netmask 255.255.255.0 broadcast 192.168.10.255
2)自PC側からTERATERMでアクセス
sshにポートを転送するために使えるソフトウェアは色々とありますが、使用頻度も高いと思われるTERATERM前提で話を進めます。しかし、TERATERMは設定の保存ができないように見えるのでもっと良い方法を見つけたら書きなおすと思います。
まずはTERATERMをたちあげて先ほどの自宅PC2のipアドレスにsshでログインしてみてください。
無事ログインできたら、上部メニューのSetup -> SSH Forwardingを選択し、
出てきた画面でAddを押して
jupyter用の設定と
TensorBoard用の設定を加えます。
3)Colabの接続設定
右上の「接続」の横の「▼」より、ローカルランタイムに接続、を選びます。
先ほどメモしたtoken以下を張り付けます。今回はport 8888をjupyterの起動ポートに指定しているため、
「http://localhost:8888/?token=xxxxxxxxxxxxxxxxxxxxxxxx」
になります。
「接続」を押して問題がなければ無事に立ち上がります。カード名は表示されてませんが、メモリはちゃんと12GB表示されてますね。X window関係でGPUのメモリを150MBくらい使っているので、これを最終的に取っ払えたらなぁ、と思っています。
そして、TensorBoardなのですが、下記で起動はできます。
しかし、Colabの中で表示させる事はタイムアウトになってしまい現時点ではColab内にTensorBoardを表示させる事が出来ていません。その代り、
「http://localhost:6006/」
にブラウザでアクセスする事でブラウザ画面で表示出来ます。
3.Google Colabのランタイムをリモートホストに設定する関連リンク
1)research.google.com
ローカル ランタイム
2)github.com
googlecolab / jupyter_http_over_ws
tensorflow / tensorboard