Je suis nouveau sur Tensorflow et bénéficierait grandement de certaines visualisations de ce que je fais. Je comprends que Tensorboard est un outil de visualisation utile, mais comment l'exécuter sur ma machine Ubuntu distante?
Je suis nouveau sur Tensorflow et bénéficierait grandement de certaines visualisations de ce que je fais. Je comprends que Tensorboard est un outil de visualisation utile, mais comment l'exécuter sur ma machine Ubuntu distante?
Réponses:
Voici ce que je fais pour éviter les problèmes de faire en sorte que le serveur distant accepte votre adresse IP externe locale:
-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, c'est que tout sur le port 6006
du serveur (in 127.0.0.1:6006
) sera transmis à ma machine sur le port 16006
.
tensorboard --logdir log
avec le 6006
port par défaut127.0.0.1
voici l' adresse IP de votre machine locale , vous devez donc la laisser telle quelle. Ne le changez pas sur votre adresse IP distante. J'ai perdu 10 minutes là-dessus. Que je suis bête!
-4
drapeau ssh l'a résolu. En lisant des questions similaires, beaucoup ont eu des problèmes avec les adresses IPv6 de leurs serveurs.
-N
drapeau pour éviter d'ouvrir un shell ssh. L'ajout -f
met la connexion ssh en arrière-plan.
Vous pouvez transférer le port avec une autre ssh
commande 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.
depuis votre machine locale , exécutez
ssh -N -f -L localhost:16006:localhost:6006 <user@remote>
sur la machine distante , exécutez:
tensorboard --logdir <path> --port 6006
Ensuite, accédez à (dans cet exemple) http: // localhost: 16006 sur votre ordinateur local.
(explication de la commande ssh:
-N
: pas de commandes à distance
-f
: mettre ssh en arrière-plan
-L <machine1>:<portA>:<machine2>:<portB>
:
forward <machine2>:<portB>
(portée distante) vers <machine1>:<portA>
(portée locale)
Vous n'avez rien de compliqué à faire. Exécutez simplement:
tensorboard --host 0.0.0.0 <other args here>
et connectez-vous avec l'url et le port de votre serveur. Le --host 0.0.0.0
dit tensorflow d'écouter les connexions sur toutes les adresses IPv4 sur la machine locale.
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
puis exécutez Tensorboard localement.
"whats my ip"
ou en entrant cette commande:wget http://ipinfo.io/ip -qO -
wget http://ipinfo.io/ip -qO -
nouveau à partir de là aussi.6006
123.123.12.32:6006
Si votre serveur distant est ouvert au trafic de votre adresse IP locale, vous devriez pouvoir voir votre Tensorboard distant.
Attention : si tout le trafic Internet peut accéder à votre système (si vous n'avez pas spécifié une seule adresse IP pouvant y accéder), n'importe qui peut voir vos résultats TensorBoard et s'emballer en créant lui-même SkyNet.
Ce n'est pas une bonne réponse mais un dépanneur, j'espère aider d'autres réseauteurs moins expérimentés comme moi.
Dans mon cas (firefox + ubuntu16), le navigateur se connectait, mais montrait une page vierge (avec le logo tensorboard sur l'onglet), et aucune activité du journal n'était affichée. Je ne sais toujours pas quelle pourrait en être la raison (je n'ai pas beaucoup cherché mais si quelqu'un le sait, faites-le savoir!), Mais j'ai résolu le problème en passant au navigateur par défaut d'ubuntu. Voici les étapes exactes, à peu près les mêmes que dans la réponse de @Olivier Moindrot:
tensorboard --logdir=. --host=localhost --port=6006
ssh -p 23 <USER>@<SERVER> -N -f -L localhost:16006:localhost:6006
Browser
et visitez localhost:16006
. La page tensorboard devrait se charger sans trop de retard.Pour vérifier que le tunnel SSH fonctionne efficacement, un simple serveur d'écho comme ce script python peut vous aider:
<ECHO>.py
fichier sur le serveur et exécutez-le avec python <ECHO>.py
. Maintenant, le serveur aura le script d'écho en écoute sur 0.0.0.0:5555 .ssh -p <SSH_PORT> <USER>@<SERVER> -N -f -L localhost:12345:localhost:5555
telnet localhost 12345
se connectera au script d'écho exécuté sur le serveur. Taper hello
et appuyer sur Entrée devrait s'imprimer hello
. Si tel est le cas, votre tunnel SSH fonctionne. C'était mon cas et cela m'a conduit à la conclusion que le problème concernait le navigateur. La tentative de connexion à partir d'un autre terminal a provoqué le gel du terminal.Comme je l'ai dit, j'espère que cela aide!
Salut,
Andres
https://github.com/dmlc/tensorboard
juste pour ajouter plus d'alternatives au installer. Cheers
Vous pouvez exécuter directement la commande suivante sur le terminal de votre serveur distant pour exécuter tensorboard:
tensorboard --logdir {tf_log directory path} --host "0.0.0.0" --port 6006
Ou vous pouvez également démarrer le tensorboard dans votre notebook ipython:
%load_ext tensorboard
%tensorboard --logdir {tf_log directory path} --host "0.0.0.0" --port 6006
Vous devez créer une connexion ssh en utilisant la redirection de port:
ssh -L 16006:127.0.0.1:6006 user@host
Ensuite, vous exécutez la tensorboard
commande:
tensorboard --logdir=/path/to/logs
Ensuite, vous pouvez facilement accéder au tensorboard
dans votre navigateur sous:
localhost:16006/
Lors de l'exécution du tensorboard, donnez une autre option --host = ip de votre système , puis vous pouvez y accéder depuis un autre système en utilisant http: // ip de votre système hôte : 6006
Une autre approche consiste à utiliser un proxy inverse , qui vous permet de visualiser Tensorboard à partir de n'importe quel appareil connecté à Internet sans SSHing . Cette approche peut rendre la visualisation de Tensorboard beaucoup plus facile / plus facile à gérer sur des appareils mobiles, par exemple.
Pas:
1) Téléchargez le proxy inverse Ngrok sur votre machine distante hébergeant Tensorboard. Consultez https://ngrok.com/download pour obtenir des instructions (configuration d'environ 5 minutes).
2) Exécuter ngrok http 6006
(en supposant que vous hébergez Tensorboard sur le port 6006)
3) Enregistrez l'URL que ngrok génère:
4) Entrez-le dans n'importe quel navigateur pour afficher TensorBoard:
Remerciements particuliers à Sam Kirkiles