neural network examples descargar course tensorflow machine-learning data-visualization remote-access tensorboard

tensorflow - network - ¿Cómo puedo ejecutar Tensorboard en un servidor remoto?



tensorflow neural network (9)

  1. Encuentre su IP externa local buscando en Google "whats my ip" o ingresando este comando: wget http://ipinfo.io/ip -qO -
  2. Determine su IP externa remota . Esto es probablemente lo que viene después de su nombre de usuario cuando se envía al servidor remoto. También puede wget http://ipinfo.io/ip -qO - nuevamente desde allí también.
  3. Asegure el tráfico de su servidor remoto para aceptar su dirección IP externa local
  4. Ejecute Tensorboard. Tenga en cuenta el puerto predeterminado: 6006
  5. Ingrese su dirección IP externa remota en su navegador, seguido del puerto: 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 escapar con la creación de SkyNet ellos mismos.

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 lo ejecuto en mi máquina remota de Ubuntu?


Debe crear una conexión ssh utilizando el reenvío de puertos:

ssh -L 16006:127.0.0.1:6006 user@host

Luego ejecuta el comando tensorboard :

tensorboard --logdir=/path/to/logs

Luego, puede acceder fácilmente al tensorboard en su navegador en:

localhost:16006/


Esta no es una respuesta adecuada, sino un solucionador de problemas, con suerte ayuda 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 la placa tensora en la pestaña), y no se mostraba actividad de registro. Todavía no sé cuál podría ser la razón de eso (no lo investigé mucho, pero si alguien lo sabe, ¡avísenlo!), Pero lo resolví cambiando al navegador predeterminado de ubuntu. Aquí los pasos exactos, más o menos lo mismo que en la respuesta de @Olivier Moindrot:

  1. En el servidor, inicie tensorboard: tensorboard --logdir=. --host=localhost --port=6006 tensorboard --logdir=. --host=localhost --port=6006
  2. En el cliente, abra el túnel ssh -p 23 <USER>@<SERVER> -N -f -L localhost:16006:localhost:6006
  3. Abra el Browser de ubuntu y visite localhost:16006 . La página del tensorboard debería cargarse sin mucho retraso.

Para comprobar que el túnel SSH funciona de manera efectiva, un simple servidor de eco como este script de Python puede ayudar:

  1. Coloque el script en un archivo <ECHO>.py en el servidor y ejecútelo con python <ECHO>.py . Ahora el servidor tendrá el script de eco escuchando en 0.0.0.0:5555 .
  2. En el cliente, abra el túnel ssh -p <SSH_PORT> <USER>@<SERVER> -N -f -L localhost:12345:localhost:5555
  3. En el cliente, en el mismo terminal utilizado para abrir el túnel (paso 2), la emisión de telnet localhost 12345 se conectará al script de eco que se ejecuta en el servidor. Escribir hello y presionar enter debería imprimir hello nuevo. 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 involucraba al navegador. Intentar conectarse desde un terminal diferente causó que el terminal se congele.

Como dije, ¡espero que ayude!
Salud,
Andres


Esto es lo que hago para evitar los problemas de hacer que el servidor remoto acepte su IP externa local:

  • cuando ssh en la máquina, uso la opción -L para transferir el puerto 6006 del servidor remoto al puerto 16006 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 (en 127.0.0.1:6006 ) se enviará a mi máquina en el puerto 16006 .

  • Luego puede iniciar el tensorboard en la máquina remota utilizando un tensorboard --logdir log estándar tensorboard --logdir log con el puerto 6006 predeterminado
  • En su máquina local, vaya a http://127.0.0.1:16006 y disfrute de su TensorBoard remoto.

Mientras ejecuta el tensorboard, brinde 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


No necesitas hacer nada elegante. Solo corre:

tensorboard --host 0.0.0.0 <other args here>

y conéctese con la url y el puerto de su servidor. --host 0.0.0.0 le dice a tensorflow que escuche desde las conexiones en todas las direcciones IPv4 en la máquina local.


Otra opción si no puede hacerlo funcionar 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.


Para cualquiera que deba usar las claves ssh (para un servidor corporativo).

Simplemente agregue -i /.ssh/id_rsa al final.

$ ssh -N -f -L localhost:8211:localhost:6007 myname@servername -i /.ssh/id_rsa


Puede reenviar puertos con otro comando ssh que no necesita estar vinculado a cómo se está conectando al servidor (como alternativa a la otra respuesta). Por lo tanto, el orden de los pasos a continuación es arbitrario.

  1. desde su máquina local , ejecute

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

  2. en la máquina remota , ejecute:

    tensorboard --logdir <path> --port 6006

  3. Luego, navegue a (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)