私はTensorflowに慣れていないので、自分がやっていることを視覚化することで大きな恩恵を受けます。 Tensorboardは便利な視覚化ツールであることは理解していますが、リモートのUbuntuマシンで実行するにはどうすればよいですか?
リモートサーバーがローカルの外部IPを受け入れるようにする問題を回避するために、次のことを行います。
-L
を使用して、リモートサーバーのポート6006
をマシンのポート16006
に転送します(たとえば):ssh -L 16006:127.0.0.1:6006 olivier@my_server_ip
サーバーのポート(6006
)上のポート(127.0.0.1:6006
)上のすべてが、ポート(16006
)上のマシンにforwardedされることです。
tensorboard --logdir log
portで標準の6006
を使用して、リモートマシンでテンソルボードを起動できます。別のssh
コマンドを使用してポートフォワードすることができます。このコマンドは、サーバーへの接続方法に関係する必要はありません(他の回答の代わりとして)。したがって、以下のステップの順序は任意です。
あなたから 地元 マシン、実行
ssh -N -f -L localhost:16006:localhost:6006 <user@remote>
に リモート マシン、実行:
tensorboard --logdir <path> --port 6006
次に、ローカルマシンの(この例では) http:// localhost:16006 に移動します。
(sshコマンドの説明:
-N
:リモートコマンドなし
-f
:バックグラウンドでsshを置く
-L <machine1>:<portA>:<machine2>:<portB>
:
<machine2>:<portB>
(リモートスコープ)を<machine1>:<portA>
(ローカルスコープ)に転送します
特別なことをする必要はありません。とにかく走れ:
tensorboard --Host 0.0.0.0 <other args here>
サーバーのURLとポートに接続します。 --Host 0.0.0.0
は、ローカルマシン上のすべてのIPv4アドレスの接続からリッスンするようにtensorflowに指示します。
何らかの理由で動作しない場合の別のオプションは、sshfsを使用してファイルシステムにlogdirディレクトリをマウントすることです。
sshfs user@Host:/home/user/project/summary_logs ~/summary_logs
tensorboardをローカルで実行します。
"whats my ip"
をグーグル検索するか、次のコマンドを入力して、local外部IPを見つけます:wget http://ipinfo.io/ip -qO -
wget http://ipinfo.io/ip -qO -
を実行することもできます。6006
123.123.12.32:6006
リモートサーバーがローカルIPアドレスからのトラフィックに対して開かれている場合、リモートTensorboardを表示できるはずです。
警告:if allインターネットトラフィックがシステムにアクセスできる場合(アクセスできる単一のIPアドレスを指定していない場合)、誰でもTensorBoardの結果を表示できますそして、SkyNet自体を作成することによる暴走。
これは適切な答えではなく、トラブルシューティングであり、私のような経験の浅い他のネットワーク作成者に役立つことを願っています。
私の場合(firefox + ubuntu16)、ブラウザーは接続していましたが、空白のページ(タブ上のテンソルボードロゴ)が表示され、ログアクティビティはまったく表示されませんでした。その理由が何であるかはまだわかりません(詳しくは調べませんでしたが、知っている人がいれば知らせてください!)が、ubuntuのデフォルトのブラウザーに切り替えて解決しました。ここでの正確な手順は、@ Olivier Moindrotの答えとほぼ同じです。
tensorboard --logdir=. --Host=localhost --port=6006
ssh -p 23 <USER>@<SERVER> -N -f -L localhost:16006:localhost:6006
を開きますBrowser
を開き、localhost:16006
にアクセスします。テンソルボードページは、大幅な遅延なしに読み込まれます。SSHトンネルが効果的に機能していることを確認するには、 this python script のような単純なエコーサーバーが役立ちます。
<ECHO>.py
ファイルにスクリプトを配置し、python <ECHO>.py
で実行します。これで、サーバーのエコースクリプトは .0.0.0:5555 をリッスンします。ssh -p <SSH_PORT> <USER>@<SERVER> -N -f -L localhost:12345:localhost:5555
を開きますtelnet localhost 12345
を発行すると、サーバーで実行されているエコースクリプトに接続します。 hello
と入力してEnterキーを押すと、hello
が出力されます。その場合、SSHトンネルは機能しています。これは私の場合であり、問題はブラウザに関係しているという結論に至りました。別の端末から接続しようとすると、端末がフリーズしました。私が言ったように、それが役立つことを願っています!
乾杯、
アンドレス
ポート転送を使用してssh接続を作成する必要があります。
ssh -L 16006:127.0.0.1:6006 user@Host
次に、tensorboard
コマンドを実行します。
tensorboard --logdir=/path/to/logs
次に、ブラウザのtensorboard
に簡単にアクセスできます。
localhost:16006/
Sshキーを使用する必要がある人(企業サーバーの場合)。
最後に-i /.ssh/id_rsa
を追加するだけです。
$ ssh -N -f -L localhost:8211:localhost:6007 myname@servername -i /.ssh/id_rsa
テンソルボードの実行中に、もう1つのオプション--Host = システムのIPを指定すると、http:// ホストシステムのIPを使用して他のシステムからアクセスできます。 6006