저는 Tensorflow를 처음 접했고 제가하는 일에 대한 시각화를 통해 큰 도움이 될 것입니다. Tensorboard가 유용한 시각화 도구라는 것을 알고 있지만 원격 Ubuntu 컴퓨터에서 어떻게 실행합니까?
저는 Tensorflow를 처음 접했고 제가하는 일에 대한 시각화를 통해 큰 도움이 될 것입니다. Tensorboard가 유용한 시각화 도구라는 것을 알고 있지만 원격 Ubuntu 컴퓨터에서 어떻게 실행합니까?
답변:
다음은 원격 서버가 로컬 외부 IP를 수락하도록 만드는 문제를 방지하기 위해 수행하는 작업입니다.
-L
전송 하는 옵션 을 사용합니다 (예 :
6006
16006
ssh -L 16006:127.0.0.1:6006 olivier@my_server_ip
그것이하는 일은 6006
서버 의 포트 (in 127.0.0.1:6006
) 에있는 모든 것이 포트 의 내 컴퓨터 로 전달 된다는 것입니다 16006
.
tensorboard --logdir log
기본 6006
포트가 있는 표준 을 사용하여 원격 머신에서 텐서 보드를 시작할 수 있습니다.127.0.0.1
여기에 로컬 시스템 IP가 있으므로 그대로 두어야합니다. 원격 IP로 변경하지 마십시오. 나는 이것에 10 분을 낭비했다. 내가 얼마나 어리석은가!
-4
ssh 플래그로 IPv4를 적용하면 해결되었습니다. 비슷한 질문을 읽고 많은 사람들이 서버의 IPv6 주소에 문제가 있습니다.
ssh
서버에 연결하는 방법에 연결할 필요가없는 다른 명령으로 포트 포워드 할 수 있습니다 (다른 답변의 대안으로). 따라서 아래 단계의 순서는 임의적입니다.
귀하의 지역 기계, 실행
ssh -N -f -L localhost:16006:localhost:6006 <user@remote>
온 원격 기계, 실행
tensorboard --logdir <path> --port 6006
그런 다음 로컬 컴퓨터에서 http : // localhost : 16006 (이 예에서는)으로 이동 합니다.
(ssh 명령에 대한 설명 :
-N
: 원격 명령 없음
-f
: 배경에 ssh를 넣어
-L <machine1>:<portA>:<machine2>:<portB>
:
순방향 <machine2>:<portB>
에 (원격 범위) <machine1>:<portA>
(로컬 영역)
멋진 일을 할 필요가 없습니다. 그냥 실행 :
tensorboard --host 0.0.0.0 <other args here>
서버 URL 및 포트와 연결하십시오. 는 --host 0.0.0.0
로컬 컴퓨터에있는 모든 IPv4 주소의 연결에서들을 수 tensorflow 알려줍니다.
"whats my ip"
.wget http://ipinfo.io/ip -qO -
wget http://ipinfo.io/ip -qO -
거기 에서도 다시 할 수 있습니다 .6006
123.123.12.32:6006
원격 서버가 로컬 IP 주소의 트래픽에 대해 열려있는 경우 원격 텐서 보드를 볼 수 있어야합니다.
경고 : 모든 인터넷 트래픽이 시스템에 액세스 할 수있는 경우 (액세스 할 수있는 단일 IP 주소를 지정하지 않은 경우) 누구나 TensorBoard 결과를 볼 수 있고 SkyNet을 직접 만들 수 있습니다.
이것은 적절한 대답은 아니지만 문제 해결사이며 저와 같이 노련한 다른 네트워크 사용자에게 도움이되기를 바랍니다.
필자의 경우 (firefox + ubuntu16) 브라우저가 연결되었지만 빈 페이지 (탭에 텐서 보드 로고 포함)가 표시되고 로그 활동이 전혀 표시되지 않았습니다. 나는 여전히 그 이유가 무엇인지 모르겠지만 (별로 살펴 보지는 않았지만 아는 사람이 있으면 알려주십시오!) 우분투의 기본 브라우저로 전환하여 해결했습니다. @Olivier Moindrot의 답변과 거의 같은 정확한 단계는 다음과 같습니다.
tensorboard --logdir=. --host=localhost --port=6006
ssh -p 23 <USER>@<SERVER> -N -f -L localhost:16006:localhost:6006
Browser
방문 localhost:16006
. 텐서 보드 페이지는 많은 지연없이로드되어야합니다.SSH 터널이 효과적으로 작동하는지 확인하려면 이 Python 스크립트 와 같은 간단한 에코 서버 가 도움 이 될 수 있습니다.
<ECHO>.py
서버 의 파일에 넣고 python <ECHO>.py
. 이제 서버는 0.0.0.0:5555에서 수신하는 echo 스크립트를 갖게됩니다 .ssh -p <SSH_PORT> <USER>@<SERVER> -N -f -L localhost:12345:localhost:5555
telnet localhost 12345
하면 서버에서 실행중인 에코 스크립트에 연결됩니다. 입력 hello
하고 Enter 키를 누르면 hello
다시 인쇄 됩니다. 이 경우 SSH 터널이 작동하는 것입니다. 이것이 제 경우 였고 문제가 브라우저와 관련이 있다는 결론을 내 렸습니다. 다른 터미널에서 연결하려고하면 터미널이 멈췄습니다.내가 말했듯이, 그것이 도움이되기를 바랍니다!
건배,
Andres
https://github.com/dmlc/tensorboard
단지 더 많은 대안을 추가 설정. 건배
포트 전달을 사용하여 SSH 연결을 만들어야합니다.
ssh -L 16006:127.0.0.1:6006 user@host
그런 다음 다음 tensorboard
명령 을 실행합니다 .
tensorboard --logdir=/path/to/logs
그러면 다음 tensorboard
에서 브라우저에서에 쉽게 액세스 할 수 있습니다 .
localhost:16006/
텐서 보드를 실행하는 동안 시스템의 --host = ip 옵션을 하나 더 제공 한 다음 http : // ip of your host system : 6006을 사용하여 다른 시스템에서 액세스 할 수 있습니다 .
또 다른 접근 방식은 역방향 프록시 를 사용하는 것입니다 .이를 통해 SSHing없이 인터넷에 연결된 모든 장치에서 Tensorboard 를 볼 수 있습니다 . 이 접근 방식을 사용하면 예를 들어 모바일 장치에서 Tensorboard를 훨씬 더 쉽게 / 다루기 쉽게 볼 수 있습니다.
단계 :
1) Tensorboard를 호스팅하는 원격 컴퓨터에 역방향 프록시 Ngrok를 다운로드합니다. 지침 은 https://ngrok.com/download 를 참조 하십시오 (최대 5 분 설정).
2) 실행 ngrok http 6006
(포트 6006에서 Tensorboard를 호스팅한다고 가정)
3) ngrok가 출력하는 URL을 저장하십시오.
4) TensorBoard를 보려면 브라우저에 입력하십시오.
Sam Kirkiles 에게 특별히 감사드립니다.