Comment puis-je exécuter Tensorboard sur un serveur distant?

je suis nouveau à Tensorflow et je profiterais grandement de quelques visualisations de ce que je fais. Je comprends que Tensorboard est un outil de visualisation utile, mais comment puis-je l'exécuter sur ma machine Ubuntu à distance?

46
demandé sur user 2016-06-23 12:40:01

8 réponses

voici ce que je fais pour éviter les problèmes de faire accepter au serveur distant votre adresse IP externe locale:

  • quand je ssh sur la machine, j'utilise l'option -L pour transférer le port 6006 du serveur distant dans le port 16006 de ma machine (par exemple): ssh -L 16006:127.0.0.1:6006 olivier@my_server_ip

Ce qu'il fait est que tout sur le port 6006 du serveur (dans 127.0.0.1:6006 ) sera transmis à ma machine sur le port 16006 .


  • vous pouvez ensuite lancer tensorboard sur la machine distante en utilisant un standard tensorboard --logdir log avec le défaut 6006 port
  • sur votre machine locale, passez à http://127.0.0.1:16006 et profitez de votre TensorBoard à distance.
94
répondu Olivier Moindrot 2016-11-03 23:57:01

vous pouvez transférer avec une autre commande ssh qui n'a pas besoin d'être liée à la façon dont vous vous connectez au serveur (comme alternative à l'autre réponse). Ainsi, l'ordre des étapes ci-dessous est arbitraire.

  1. à partir de votre local de la machine, exécutez

    ssh -N -f -L localhost:16006:localhost:6006 <user@remote>

  2. sur la machine remote , exécuter:

    tensorboard --logdir <path> --port 6006

  3. ensuite, naviguez vers (dans cet exemple) http://localhost:16006 sur votre machine locale.

(explication de la commande ssh:

-N : aucune commande à distance

-f : mettre ssh à l'arrière-plan

-L <machine1>:<portA>:<machine2>:<portB> :

de l'avant <machine2>:<portB> (à distance de la portée) de <machine1>:<portA> (portée locale)

21
répondu eqzx 2018-08-06 17:13:51

Vous n'avez pas besoin de faire quelque chose de compliqué. Il suffit de lancer:

tensorboard --host 0.0.0.0 <other args here>

et se connecter avec l'url et le port de votre serveur. Le --host 0.0.0.0 indique à tensorflow d'écouter à partir des connexions sur toutes les adresses IPv4 de la machine locale.

11
répondu 0xcaff 2017-05-31 23:32:14
  1. Trouvez votre local IP externe en googlant "whats my ip" ou en tapant cette commande: wget http://ipinfo.io/ip -qO -
  2. déterminez votre IP externe remote . C'est probablement ce qui suit votre nom d'utilisateur lorsque ssh-ing entre dans le serveur distant. Vous pouvez également wget http://ipinfo.io/ip -qO - de nouveau à partir de là aussi.
  3. sécuriser le trafic de votre serveur distant pour accepter simplement votre Local IP externe adresse
  4. Exécuter Tensorboard. Remarque le port par défaut est: 6006
  5. entrez votre remote adresse IP externe dans votre navigateur, suivi du port: 123.123.12.32:6006

si votre serveur distant est ouvert au trafic à partir de votre adresse IP locale, vous devriez pouvoir voir votre Tensorboard distant.

avertissement : si tous trafic internet peut accéder à votre système (Si vous n'avez pas spécifié une seule adresse IP qui peut y accéder), n'importe qui peut être en mesure de voir vos résultats TensorBoard et runaway avec la création de SkyNet eux-mêmes.

7
répondu JohnAllen 2016-08-06 18:10:11

une autre option si vous ne pouvez pas le faire fonctionner pour une raison quelconque est de simplement monter un répertoire logdir sur votre système de fichiers avec sshfs:

sshfs user@host:/home/user/project/summary_logs ~/summary_logs

et ensuite exécuter Tensorboard localement.

5
répondu Scientist1642 2017-03-29 20:56:24

ce n'est pas une bonne réponse, mais un dépanneur, j'espère aider d'autres moins expérimentés networkers comme moi.

dans mon cas (firefox+ubuntu16), le navigateur se connectait, mais affichait une page blanche (avec le logo tensorboard sur l'onglet), et aucune activité de journalisation n'était affichée. Je ne sais toujours pas quelle pourrait être la raison pour ça, n'a rien à voir dans cela, mais si quelqu'un sait merci de le savoir!), mais je l'ai résolu en passant au navigateur par défaut d'ubuntu. Ici la les étapes exactes, à peu près les mêmes que dans la réponse de @Olivier Moindrot:

  1. sur le serveur, démarrer tensorboard: tensorboard --logdir=. --host=localhost --port=6006
  2. sur le client, ouvrez le tunnel ssh ssh -p 23 <USER>@<SERVER> -N -f -L localhost:16006:localhost:6006
  3. ouvrir ubuntu Browser et visiter localhost:16006 . La page tensorboard devrait se charger sans beaucoup de retard.

pour vérifier que le tunnel SSH fonctionne bien, un simple serveur echo comme ce script python peut aider:

  1. mettez le script dans un fichier <ECHO>.py dans le serveur et lancez-le avec python <ECHO>.py . Maintenant le serveur va avoir le script echo en écoute 0.0.0.0:5555 .
  2. sur le client, ouvrez le tunnel ssh ssh -p <SSH_PORT> <USER>@<SERVER> -N -f -L localhost:12345:localhost:5555
  3. sur le client, dans le même terminal utilisé pour ouvrir le tunnel (étape 2.), émettre telnet localhost 12345 se connecte au script echo qui s'exécute sur le serveur. En tapant hello et en appuyant sur entrée doit imprimer hello en arrière. Si c'est le cas, votre tunnel SSH fonctionne. Ce fut mon cas, et m'amène à la conclusion que le problème concernait le navigateur. En essayant de se connecter à partir d'un autre terminal, le terminal s'est figé.

comme je l'ai dit, j'espère que cela vous aidera!

Santé,

Andres

3
répondu fr_andres 2017-11-25 19:29:51

vous devez créer une connexion ssh en utilisant port forwarding:

ssh -L 16006:127.0.0.1:6006 user@host

puis vous lancez la commande tensorboard :

tensorboard --logdir=/path/to/logs

alors vous pouvez facilement accéder au tensorboard dans votre navigateur sous:

localhost:16006/
2
répondu 2017-12-20 16:56:16

lors de l'exécution du tensorboard donner une option de plus -- host= ip de votre système et alors vous pouvez y accéder à partir d'un autre système en utilisant http: / / ip de votre système hôte : 6006

0
répondu user2973566 2017-03-24 19:01:26