원격 서버에서 Tensorboard를 어떻게 실행할 수 있습니까?
저는 Tensorflow를 처음 접했고 제가하는 일에 대한 시각화를 통해 큰 도움이 될 것입니다. Tensorboard가 유용한 시각화 도구라는 것을 알고 있지만 원격 Ubuntu 컴퓨터에서 어떻게 실행합니까?
다음은 원격 서버가 로컬 외부 IP를 수락하도록 만드는 문제를 방지하기 위해 수행하는 작업입니다.
- 컴퓨터에 ssh 할 때 원격 서버의 포트 를 내 컴퓨터 의 포트로
-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
포트가 있는 표준 을 사용하여 원격 머신에서 텐서 보드를 시작할 수 있습니다. - 로컬 머신에서 http://127.0.0.1:16006으로 이동 하여 원격 TensorBoard를 즐기십시오.
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 알려줍니다.
- 인터넷 검색을 하거나 다음 명령을 입력 하여 로컬 외부 IP를 찾습니다
"whats my ip"
.wget http://ipinfo.io/ip -qO -
- 원격 외부 IP를 결정합니다 . 이것은 아마도 원격 서버에 ssh-ing 할 때 사용자 이름 뒤에 오는 것입니다.
wget http://ipinfo.io/ip -qO -
거기 에서도 다시 할 수 있습니다 . - 로컬 외부 IP 주소 만 허용하도록 원격 서버 트래픽을 보호 합니다.
- Tensorboard를 실행합니다. 기본 포트는 다음과 같습니다.
6006
- 브라우저에 원격 외부 IP 주소를 입력 한 다음 포트 :
123.123.12.32:6006
원격 서버가 로컬 IP 주소의 트래픽에 대해 열려있는 경우 원격 Tensorboard를 볼 수 있어야합니다.
경고 : 모든 인터넷 트래픽이 시스템에 액세스 할 수있는 경우 (액세스 할 수있는 단일 IP 주소를 지정하지 않은 경우) 누구나 TensorBoard 결과를 볼 수 있고 SkyNet을 직접 만들 수 있습니다.
어떤 이유로 작동하지 않는 또 다른 옵션은 단순히 sshfs를 사용하여 파일 시스템에 logdir 디렉토리를 마운트하는 것입니다.
sshfs user@host:/home/user/project/summary_logs ~/summary_logs
그런 다음 Tensorboard를 로컬에서 실행합니다.
이것은 적절한 대답은 아니지만 문제 해결사이며 저와 같이 노련한 다른 네트워크 사용자에게 도움이되기를 바랍니다.
필자의 경우 (firefox + ubuntu16) 브라우저가 연결되었지만 빈 페이지 (탭에 텐서 보드 로고 포함)가 표시되고 로그 활동이 전혀 표시되지 않았습니다. 나는 여전히 그 이유가 무엇인지 모르겠지만 (별로 살펴 보지는 않았지만 아는 사람이 있으면 알려주십시오!) 우분투의 기본 브라우저로 전환하여 해결했습니다. @Olivier Moindrot의 답변과 거의 동일한 정확한 단계는 다음과 같습니다.
- 서버에서 텐서 보드를 시작합니다.
tensorboard --logdir=. --host=localhost --port=6006
- 클라이언트에서 ssh 터널을 엽니 다.
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 터널을 엽니 다.
ssh -p <SSH_PORT> <USER>@<SERVER> -N -f -L localhost:12345:localhost:5555
- 클라이언트에서 터널을 여는 데 사용 된 동일한 터미널 (2 단계)에서 발급
telnet localhost 12345
하면 서버에서 실행중인 에코 스크립트에 연결됩니다. 입력hello
하고 Enter 키를 누르면hello
다시 인쇄 됩니다. 이 경우 SSH 터널이 작동하는 것입니다. 이것이 제 경우 였고 문제가 브라우저와 관련이 있다는 결론을 내 렸습니다. 다른 터미널에서 연결하려고하면 터미널이 멈췄습니다.
내가 말했듯이, 그것이 도움이되기를 바랍니다!
건배,
Andres
포트 포워딩을 사용하여 SSH 연결을 생성해야합니다.
ssh -L 16006:127.0.0.1:6006 user@host
그런 다음 다음 tensorboard
명령 을 실행합니다 .
tensorboard --logdir=/path/to/logs
Then you can easily access the tensorboard
in your browser under:
localhost:16006/
While running the tensorboard give one more option --host=ip of your system and then you can access it from other system using http://ip of your host system:6006
For anyone who must use the ssh keys (for a corporate server).
Just add -i /.ssh/id_rsa
at the end.
$ ssh -N -f -L localhost:8211:localhost:6007 myname@servername -i /.ssh/id_rsa
참고URL : https://stackoverflow.com/questions/37987839/how-can-i-run-tensorboard-on-a-remote-server
'Development Tip' 카테고리의 다른 글
DDoS 보호를 활성화하는 방법은 무엇입니까? (0) | 2020.10.08 |
---|---|
레이아웃 내부에 레이아웃을 포함하는 방법은 무엇입니까? (0) | 2020.10.08 |
부록의 두 장 사이에있는 빈 페이지를 제거하려면 어떻게합니까? (0) | 2020.10.08 |
기존 테이블에서 테이블 (구조) 생성 (0) | 2020.10.08 |
Kotlin에서 인라인 함수를 언제 사용합니까? (0) | 2020.10.08 |