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?
116
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 port6006
du serveur distant dans le port16006
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 (in127.0.0.1:6006
) sera transmis à ma machine sur le port16006
.tensorboard --logdir log
avec le6006
port par défautla source
127.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)la source
Vous n'avez rien de compliqué à faire. Exécutez simplement:
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.la source
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.
la source
"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.
la source
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 visitezlocalhost: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 avecpython <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. Taperhello
et appuyer sur Entrée devrait s'imprimerhello
. 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
la source
https://github.com/dmlc/tensorboard
juste pour ajouter plus d'alternatives au installer. CheersVous pouvez exécuter directement la commande suivante sur le terminal de votre serveur distant pour exécuter tensorboard:
Ou vous pouvez également démarrer le tensorboard dans votre notebook ipython:
la source
Vous devez créer une connexion ssh en utilisant la redirection de port:
Ensuite, vous exécutez la
tensorboard
commande:Ensuite, vous pouvez facilement accéder au
tensorboard
dans votre navigateur sous:la source
--bind_all
l'option est utile.Le port sera automatiquement sélectionné à partir de 6006 de manière incrémentielle. (6006, 6007, 6008 ...)
la source
Pour toute personne qui doit utiliser les clés ssh (pour un serveur d'entreprise).
Ajoutez simplement
-i /.ssh/id_rsa
à la fin.$ ssh -N -f -L localhost:8211:localhost:6007 myname@servername -i /.ssh/id_rsa
la source
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
la source
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
la source