リモートからtensorboardにアクセスする
概要
Tensorflowに付属する強力な可視化ツールであるTensorboardを使うと、学習状況の確認やプログラムのデバッグをわずか数行のコードで実装することが出来ます。とりわけ、ハイパーパラメータのチューニングを行う際、手っ取り早く各条件ごとの比較を行いたいときに重宝するツールでしょう。Tensorboardの詳しい解説は、GoogleのDandelionさんという素敵な名前の方が、わかりやすく解説しているのでそちらを御覧ください。
Hands-on TensorBoard (TensorFlow Dev Summit 2017)
さて、このTensorboardですが、基本的にhttpサーバでホストされるので、 sshでトンネリングすればリモートからアクセスすることが出来ます。 設定方法は以下のとおりです。
サーバ側
サーバ側では通常通りtensorboardを立ち上げます。
tensorboard --logdir=path/to/log-directory --port 9999
ポート番号はoptionです。何も指定しない場合6006となります。
クライアント側
クライアント側の設定も比較的単純で、sshの-Lオプションを使ってトンネリングします。
ssh -L 8888:localhost:9999 user@server.host.name
上では、user@server.host.name:9999をクライアントのlocalhost:8888にバインドしています。
このように設定しておくと、クライアントは http://localhost:8888 からtensorboardにアクセスすることが出来ます。
さらに、-f
オプションをつけるとバックグラウンド実行され、
また、-N
オプションをつけるとコマンド入力を無効にしてくれます。
~/.ssh/config
に設定する場合は、以下を追加します。
Host <NAME> HostName <server.host.name> User <user> Port 9999 LocalForward 8888 127.0.0.1:8888