Misce//anea

ふかえりはきんもつだ

リモートから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