Jestem nowy w Tensorflow i bardzo skorzystam na wizualizacjach tego, co robię. Rozumiem, że Tensorboard jest przydatnym narzędziem do wizualizacji, ale jak uruchomić go na moim zdalnym komputerze Ubuntu?
116
Jestem nowy w Tensorflow i bardzo skorzystam na wizualizacjach tego, co robię. Rozumiem, że Tensorboard jest przydatnym narzędziem do wizualizacji, ale jak uruchomić go na moim zdalnym komputerze Ubuntu?
Odpowiedzi:
Oto, co robię, aby uniknąć problemów polegających na zmuszaniu zdalnego serwera do akceptowania lokalnego zewnętrznego adresu IP:
-L
przeniesienia portu6006
zdalnego serwera do portu16006
mojej maszyny (na przykład):ssh -L 16006:127.0.0.1:6006 olivier@my_server_ip
To, co robi, to to, że wszystko na porcie
6006
serwera (in127.0.0.1:6006
) zostanie przekazane do mojego komputera na porcie16006
.tensorboard --logdir log
z domyślnym6006
portemźródło
127.0.0.1
tutaj jest twój lokalny adres IP, więc powinieneś zostawić go tak, jak jest. Nie zmieniaj go na zdalny adres IP. Zmarnowałem na to 10 minut. Jaki ja jestem głupi!-4
flagą ssh rozwiązało problem. Czytając podobne pytania, wielu miało problemy z adresami IPv6 na swoich serwerach.-N
flagę, aby uniknąć otwierania powłoki ssh. Dodanie-f
umieszcza połączenie ssh w tle.Możesz przekierować port za pomocą innego
ssh
polecenia, które nie musi być związane ze sposobem łączenia się z serwerem (jako alternatywa dla innej odpowiedzi). Zatem kolejność poniższych kroków jest dowolna.z komputera lokalnego , uruchom
ssh -N -f -L localhost:16006:localhost:6006 <user@remote>
na zdalnym komputerze uruchom:
tensorboard --logdir <path> --port 6006
Następnie przejdź do (w tym przykładzie) http: // localhost: 16006 na komputerze lokalnym.
(wyjaśnienie polecenia ssh:
-N
: brak poleceń zdalnych-f
: umieść ssh w tle-L <machine1>:<portA>:<machine2>:<portB>
:forward
<machine2>:<portB>
(zakres zdalny) do<machine1>:<portA>
(zakres lokalny)źródło
Nie musisz robić nic wymyślnego. Po prostu biegnij:
i połącz się z adresem URL i portem serwera.
--host 0.0.0.0
Mówi tensorflow słuchać od połączeń na wszystkich adresów IPv4 na lokalnym komputerze.źródło
Inną opcją, jeśli z jakiegoś powodu nie możesz go uruchomić, jest po prostu zamontowanie katalogu logdir w systemie plików za pomocą sshfs:
sshfs user@host:/home/user/project/summary_logs ~/summary_logs
a następnie uruchom Tensorboard lokalnie.
źródło
"whats my ip"
wpisując w Google lub wprowadzając to polecenie:wget http://ipinfo.io/ip -qO -
wget http://ipinfo.io/ip -qO -
stamtąd ponownie.6006
123.123.12.32:6006
Jeśli twój zdalny serwer jest otwarty dla ruchu z twojego lokalnego adresu IP, powinieneś być w stanie zobaczyć twój zdalny Tensorboard.
Ostrzeżenie : jeśli cały ruch internetowy ma dostęp do twojego systemu (jeśli nie określiłeś ani jednego adresu IP, który może uzyskać do niego dostęp), każdy może być w stanie wyświetlić wyniki TensorBoard i niekoniecznie tworzyć SkyNet.
źródło
To nie jest właściwa odpowiedź, ale narzędzie do rozwiązywania problemów, miejmy nadzieję, że pomoże innym mniej doświadczonym networkerom, takim jak ja.
W moim przypadku (firefox + ubuntu16) przeglądarka łączyła się, ale wyświetlała pustą stronę (z logo tensorboard na karcie) i nie było żadnej aktywności dziennika. Nadal nie wiem, co może być tego przyczyną (nie zaglądałem zbytnio do tego, ale jeśli ktoś wie, daj znać!), Ale rozwiązałem to, przełączając się na domyślną przeglądarkę Ubuntu. Oto dokładne kroki, prawie takie same jak w odpowiedzi @Olivier Moindrot:
tensorboard --logdir=. --host=localhost --port=6006
ssh -p 23 <USER>@<SERVER> -N -f -L localhost:16006:localhost:6006
Browser
i odwiedźlocalhost:16006
. Strona tensorboard powinna załadować się bez większego opóźnienia.Aby sprawdzić, czy tunel SSH działa skutecznie, może pomóc prosty serwer echa, taki jak ten skrypt w Pythonie :
<ECHO>.py
pliku na serwerze i uruchom go za pomocąpython <ECHO>.py
. Teraz serwer będzie miał skrypt echa nasłuchujący na 0.0.0.0:5555 .ssh -p <SSH_PORT> <USER>@<SERVER> -N -f -L localhost:12345:localhost:5555
telnet localhost 12345
połączy się ze skryptem echo działającym na serwerze. Wpisaniehello
i naciśnięcie klawisza Enter powinno zostać wydrukowane zhello
powrotem. Jeśli tak jest, Twój tunel SSH działa. Tak było w moim przypadku i doprowadziło mnie do wniosku, że problem dotyczył przeglądarki. Próba połączenia z innego terminala spowodowała zawieszenie się terminala.Jak powiedziałem, mam nadzieję, że to pomoże!
Pozdrawiam,
Andres
źródło
https://github.com/dmlc/tensorboard
tylko po to, aby dodać więcej alternatyw do Ustawiać. PozdrawiamMożesz bezpośrednio uruchomić następujące polecenie na terminalu zdalnego serwera, aby uruchomić tensorboard:
Możesz też uruchomić tensorboard w swoim notebooku ipython:
źródło
Musisz utworzyć połączenie ssh za pomocą przekierowania portów:
Następnie uruchamiasz
tensorboard
polecenie:Następnie możesz łatwo uzyskać dostęp do
tensorboard
w swojej przeglądarce pod:źródło
--bind_all
opcja jest przydatna.Port zostanie automatycznie wybrany przyrostowo z 6006. (6006, 6007, 6008 ...)
źródło
Dla każdego, kto musi używać kluczy ssh (dla serwera korporacyjnego).
Po prostu dodaj
-i /.ssh/id_rsa
na końcu.$ ssh -N -f -L localhost:8211:localhost:6007 myname@servername -i /.ssh/id_rsa
źródło
Podczas uruchamiania tensorboard podaj jeszcze jedną opcję --host = ip swojego systemu, a następnie możesz uzyskać do niego dostęp z innego systemu za pomocą http: // ip swojego systemu hosta : 6006
źródło
Innym podejściem jest użycie odwrotnego proxy , które umożliwia przeglądanie Tensorboard z dowolnego urządzenia podłączonego do Internetu bez SSHing . Takie podejście może na przykład znacznie ułatwić przeglądanie Tensorboard na urządzeniach mobilnych.
Kroki:
1) Pobierz odwrotne proxy Ngrok na zdalną maszynę obsługującą Tensorboard. Zobacz https://ngrok.com/download, aby uzyskać instrukcje (~ 5 minut konfiguracji).
2) Uruchom
ngrok http 6006
(zakładając, że hostujesz Tensorboard na porcie 6006)3) Zapisz adres URL generowany przez ngrok:
4) Wpisz to w dowolnej przeglądarce, aby wyświetlić TensorBoard:
Specjalne podziękowania dla Sama Kirkilesa
źródło