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:
-L
para transferir el puerto6006
del servidor remoto al puerto16006
de mi máquina (por ejemplo):ssh -L 16006:127.0.0.1:6006 olivier@my_server_ip
Lo que hace es que todo en el puerto
6006
del servidor (en127.0.0.1:6006
) se reenviará a mi máquina en el puerto16006
.tensorboard --logdir log
con el6006
puerto predeterminadofuente
127.0.0.1
aquí 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!-4
bandera ssh lo resolvió. Al leer preguntas similares, muchos han tenido problemas con las direcciones IPv6 en sus servidores.-N
bandera para evitar abrir un shell ssh. Agregar-f
pone la conexión ssh en segundo plano.Puede reenviar el puerto con otro
ssh
comando 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 6006
Luego, 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.0
dice 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_logs
y 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í.6006
123.123.12.32:6006
Si 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=6006
ssh -p 23 <USER>@<SERVER> -N -f -L localhost:16006:localhost:6006
Browser
y 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>.py
archivo 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:5555
telnet localhost 12345
se conectará al script de eco que se ejecuta en el servidor. Escribirhello
y presionar enter deberíahello
volver 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/tensorboard
solo 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
tensorboard
comando:Luego, puede acceder fácilmente
tensorboard
en su navegador en:fuente
--bind_all
La 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_rsa
al final.$ ssh -N -f -L localhost:8211:localhost:6007 myname@servername -i /.ssh/id_rsa
fuente
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