Soy nuevo en Tensorflow y me beneficiaría enormemente de algunas visualizaciones de lo que estoy haciendo. Entiendo que Tensorboard es una herramienta de visualización útil, pero ¿cómo la ejecuto en mi máquina Ubuntu remota?
116
Soy nuevo en Tensorflow y me beneficiaría enormemente de algunas visualizaciones de lo que estoy haciendo. Entiendo que Tensorboard es una herramienta de visualización útil, pero ¿cómo la ejecuto en mi máquina Ubuntu remota?
Respuestas:
Esto es lo que hago para evitar los problemas de hacer que el servidor remoto acepte su IP externa local:
-Lpara transferir el puerto6006del servidor remoto al puerto16006de mi máquina (por ejemplo):ssh -L 16006:127.0.0.1:6006 olivier@my_server_ipLo que hace es que todo en el puerto
6006del servidor (en127.0.0.1:6006) se reenviará a mi máquina en el puerto16006.tensorboard --logdir logcon el6006puerto predeterminadofuente
127.0.0.1aquí está la ip de su máquina local , por lo que debe dejarla como está. No lo cambie a su ip remota. Perdí 10 minutos en esto. ¡Que estúpido soy!-4bandera ssh lo resolvió. Al leer preguntas similares, muchos han tenido problemas con las direcciones IPv6 en sus servidores.-Nbandera para evitar abrir un shell ssh. Agregar-fpone la conexión ssh en segundo plano.Puede reenviar el puerto con otro
sshcomando que no necesita estar vinculado a cómo se conecta al servidor (como una alternativa a la otra respuesta). Por tanto, el orden de los pasos siguientes es arbitrario.desde su máquina local , ejecute
ssh -N -f -L localhost:16006:localhost:6006 <user@remote>en la máquina remota , ejecute:
tensorboard --logdir <path> --port 6006Luego, navegue hasta (en este ejemplo) http: // localhost: 16006 en su máquina local.
(explicación del comando ssh:
-N: sin comandos remotos-f: poner ssh en segundo plano-L <machine1>:<portA>:<machine2>:<portB>:reenviar
<machine2>:<portB>(alcance remoto) a<machine1>:<portA>(alcance local)fuente
No necesitas hacer nada elegante. Solo corre:
y conéctese con la URL y el puerto de su servidor. Le
--host 0.0.0.0dice a tensorflow que escuche las conexiones en todas las direcciones IPv4 en la máquina local.fuente
Otra opción si no puede hacer que funcione por alguna razón es simplemente montar un directorio logdir en su sistema de archivos con sshfs:
sshfs user@host:/home/user/project/summary_logs ~/summary_logsy luego ejecute Tensorboard localmente.
fuente
"whats my ip"o ingresando este comando:wget http://ipinfo.io/ip -qO -wget http://ipinfo.io/ip -qO -volver a hacerlo desde allí.6006123.123.12.32:6006Si su servidor remoto está abierto al tráfico desde su dirección IP local, debería poder ver su Tensorboard remoto.
Advertencia : si todo el tráfico de Internet puede acceder a su sistema (si no ha especificado una sola dirección IP que pueda acceder a él), cualquiera puede ver los resultados de su TensorBoard y crear SkyNet por sí mismo.
fuente
Esta no es una respuesta adecuada, sino un solucionador de problemas, espero que ayude a otros networkers menos experimentados como yo.
En mi caso (firefox + ubuntu16), el navegador se estaba conectando, pero mostraba una página en blanco (con el logotipo de tensorboard en la pestaña) y no se mostraba ninguna actividad de registro. Todavía no sé cuál podría ser la razón de eso (no lo investigué mucho, pero si alguien lo sabe, ¡avísele!), Pero lo resolví cambiando al navegador predeterminado de ubuntu. Aquí los pasos exactos, prácticamente los mismos que en la respuesta de @Olivier Moindrot:
tensorboard --logdir=. --host=localhost --port=6006ssh -p 23 <USER>@<SERVER> -N -f -L localhost:16006:localhost:6006Browsery visitelocalhost:16006. La página del tensorboard debería cargarse sin mucha demora.Para verificar que el túnel SSH está funcionando efectivamente, un servidor de eco simple como este script de Python puede ayudar:
<ECHO>.pyarchivo en el servidor y ejecútelo conpython <ECHO>.py. Ahora el servidor tendrá el script de eco escuchando en 0.0.0.0:5555 .ssh -p <SSH_PORT> <USER>@<SERVER> -N -f -L localhost:12345:localhost:5555telnet localhost 12345se conectará al script de eco que se ejecuta en el servidor. Escribirhelloy presionar enter deberíahellovolver a imprimir . Si ese es el caso, su túnel SSH está funcionando. Este fue mi caso y me llevó a la conclusión de que el problema estaba relacionado con el navegador. Al intentar conectarse desde un terminal diferente, el terminal se congelaba.Como dije, ¡espero que te ayude!
Saludos,
Andrés
fuente
https://github.com/dmlc/tensorboardsolo para agregar más alternativas a la preparar. SaludosPuede ejecutar directamente el siguiente comando en la terminal de su servidor remoto para ejecutar tensorboard:
O también puede iniciar el tensorboard dentro de su cuaderno ipython:
fuente
Tienes que crear una conexión ssh usando el reenvío de puertos:
Luego ejecuta el
tensorboardcomando:Luego, puede acceder fácilmente
tensorboarden su navegador en:fuente
--bind_allLa opción es útil.El puerto se seleccionará automáticamente de 6006 de forma incremental. (6006, 6007, 6008 ...)
fuente
Para cualquiera que deba usar las claves ssh (para un servidor corporativo).
Solo agregue
-i /.ssh/id_rsaal final.$ ssh -N -f -L localhost:8211:localhost:6007 myname@servername -i /.ssh/id_rsafuente
Mientras ejecuta el tensorboard, dé una opción más --host = ip de su sistema y luego puede acceder a él desde otro sistema usando http: // ip de su sistema host : 6006
fuente
Otro enfoque es utilizar un proxy inverso , que le permite ver Tensorboard desde cualquier dispositivo conectado a Internet sin SSHing . Este enfoque puede hacer que sea mucho más fácil / manejable ver Tensorboard en dispositivos móviles, por ejemplo.
Pasos:
1) Descargue el proxy inverso Ngrok en su máquina remota que aloja Tensorboard. Consulte https://ngrok.com/download para obtener instrucciones (configuración de ~ 5 minutos).
2) Ejecutar
ngrok http 6006(asumiendo que está alojando Tensorboard en el puerto 6006)3) Guarde la URL que genera ngrok:
4) Ingrese eso en cualquier navegador para ver TensorBoard:
Un agradecimiento especial a Sam Kirkiles
fuente