Tensorflow'da yeniyim ve yaptığım şeyin bazı görselleştirmelerinden büyük ölçüde faydalanabilirim. Tensorboard'un yararlı bir görselleştirme aracı olduğunu anlıyorum, ancak onu uzak Ubuntu makinemde nasıl çalıştırabilirim?
Tensorflow'da yeniyim ve yaptığım şeyin bazı görselleştirmelerinden büyük ölçüde faydalanabilirim. Tensorboard'un yararlı bir görselleştirme aracı olduğunu anlıyorum, ancak onu uzak Ubuntu makinemde nasıl çalıştırabilirim?
Yanıtlar:
Uzak sunucunun yerel harici IP'nizi kabul etmesini sağlamakla ilgili sorunları önlemek için şunları yapıyorum:
-L
noktasına aktarma seçeneğini kullanıyorum (örneğin):
6006
16006
ssh -L 16006:127.0.0.1:6006 olivier@my_server_ip
Ne yapar noktası üzerinde o her şeydir 6006
(sunucunun 127.0.0.1:6006
edilecektir) iletilen bağlantı noktasında benim makineye 16006
.
tensorboard --logdir log
, varsayılan 6006
bağlantı noktasına sahip bir standart kullanarak uzak makinede tensorboard'u başlatabilirsiniz.127.0.0.1
İşte yerel makinenizin ip'i, bu yüzden onu olduğu gibi bırakmalısınız. Uzak ip'inizle değiştirmeyin. Bununla 10 dakikamı boşa harcadım. Ne kadar aptalım!
-4
ssh bayrağıyla zorlamak sorunu çözdü. Benzer soruları okurken, birçoğunun sunucularındaki IPv6 adresleriyle ilgili sorunları olmuştur.
-N
bir ssh kabuğunu açmamak için bayrak ekleyebilirsiniz . Eklemek -f
, ssh bağlantısını arka plana koyar.
ssh
Sunucuya nasıl bağlandığınıza bağlı olması gerekmeyen başka bir komutla bağlantı noktası iletebilirsiniz (diğer yanıta alternatif olarak). Bu nedenle, aşağıdaki adımların sıralaması keyfidir.
senin dan yerel makinesi, kaçak
ssh -N -f -L localhost:16006:localhost:6006 <user@remote>
üzerinde uzaktan makinesi, çalıştırın:
tensorboard --logdir <path> --port 6006
Ardından, yerel makinenizde (bu örnekte) http: // localhost: 16006 adresine gidin .
(ssh komutunun açıklaması:
-N
: uzaktan komut yok
-f
: ssh'yi arka plana koyun
-L <machine1>:<portA>:<machine2>:<portB>
:
ilet <machine2>:<portB>
(uzak kapsam) <machine1>:<portA>
(yerel kapsam)
Süslü bir şey yapmanıza gerek yok. Sadece koş:
tensorboard --host 0.0.0.0 <other args here>
ve sunucu url'niz ve bağlantı noktanızla bağlantı kurun. --host 0.0.0.0
Yerel makinedeki tüm IPv4 adreslerini bağlantılarından dinlemek için tensorflow söyler.
Herhangi bir nedenle çalışmasını sağlayamıyorsanız başka bir seçenek, dosya sisteminize sshfs ile bir logdir dizini eklemektir:
sshfs user@host:/home/user/project/summary_logs ~/summary_logs
ve ardından Tensorboard'u yerel olarak çalıştırın.
"whats my ip"
:wget http://ipinfo.io/ip -qO -
wget http://ipinfo.io/ip -qO -
Oradan tekrar .6006
123.123.12.32:6006
Uzak sunucunuz yerel IP adresinizden gelen trafiğe açıksa, uzak Tensorboard'unuzu görebilmeniz gerekir.
Uyarı : Tüm internet trafiği sisteminize erişebiliyorsa (buna erişebilecek tek bir IP adresi belirtmediyseniz), herkes TensorBoard sonuçlarınızı görüntüleyebilir ve SkyNet'i kendileri oluşturarak kaçabilir.
Bu doğru bir cevap değil, bir sorun giderici, umarım benim gibi daha az tecrübeli diğer ağcılara yardımcı olur.
Benim durumumda (firefox + ubuntu16) tarayıcı bağlanıyordu, ancak boş bir sayfa gösteriyor (sekmede tensorboard logosu ile) ve hiç günlük etkinliği gösterilmiyordu. Hala bunun nedeninin ne olabileceğini bilmiyorum (çok fazla bakmadım ama bilen varsa lütfen bildirin!), Ama ubuntu'nun varsayılan tarayıcısına geçerek çözdüm. İşte tam adımlar, @Olivier Moindrot'un cevabındakiyle hemen hemen aynı:
tensorboard --logdir=. --host=localhost --port=6006
ssh -p 23 <USER>@<SERVER> -N -f -L localhost:16006:localhost:6006
Browser
ve ziyaret edin localhost:16006
. Tensorboard sayfası çok gecikmeden yüklenmelidir.SSH tünelinin etkili bir şekilde çalışıp çalışmadığını kontrol etmek için, bu python betiği gibi basit bir yankı sunucusu yardımcı olabilir:
<ECHO>.py
dosyasını sunucudaki bir dosyaya koyun ve çalıştırın python <ECHO>.py
. Şimdi sunucuda yankı betiği 0.0.0.0:5555'i dinleyecektir .ssh -p <SSH_PORT> <USER>@<SERVER> -N -f -L localhost:12345:localhost:5555
telnet localhost 12345
, sunucuda çalışan yankı betiğine bağlanacaktır. Yazmak hello
ve enter tuşuna basmak hello
geri yazdırmalıdır . Durum buysa, SSH tüneliniz çalışıyor demektir. Bu benim durumumdu ve beni sorunun tarayıcıyla ilgili olduğu sonucuna götürdü. Farklı bir terminalden bağlanmaya çalışmak terminalin donmasına neden oldu.Dediğim gibi, umarım yardımcı olur!
Şerefe,
Andres
https://github.com/dmlc/tensorboard
sadece daha fazla alternatif eklemek için kurmak. Şerefe
Tensorboard'u çalıştırmak için uzak sunucunuzun terminalinde aşağıdaki komutu doğrudan çalıştırabilirsiniz:
tensorboard --logdir {tf_log directory path} --host "0.0.0.0" --port 6006
Veya tensorboard'u ipython dizüstü bilgisayarınızdan da başlatabilirsiniz:
%load_ext tensorboard
%tensorboard --logdir {tf_log directory path} --host "0.0.0.0" --port 6006
Bağlantı noktası yönlendirmeyi kullanarak bir ssh bağlantısı oluşturmanız gerekir:
ssh -L 16006:127.0.0.1:6006 user@host
Ardından şu tensorboard
komutu çalıştırırsınız :
tensorboard --logdir=/path/to/logs
Ardından tensorboard
tarayıcınızda şu adresten kolayca erişebilirsiniz :
localhost:16006/
Tensorboard'u çalıştırırken bir seçenek daha verin --host = ip sisteminize ve ardından ana sisteminizin http: // ip'ini kullanarak başka bir sistemden ona erişebilirsiniz : 6006
Diğer bir yaklaşım, Tensorboard'u SSHing olmadan internete bağlı herhangi bir cihazdan görüntülemenize izin veren bir ters proxy kullanmaktır . Bu yaklaşım, örneğin Tensorboard'u mobil cihazlarda görüntülemeyi çok daha kolay / izlenebilir hale getirebilir.
Adımlar:
1) Tensorboard'u barındıran uzak makinenizde ters proxy Ngrok'u indirin. Talimatlar için https://ngrok.com/download adresine bakın (~ 5 dakikalık kurulum).
2) Çalıştır ngrok http 6006
(6006 numaralı bağlantı noktasında Tensorboard'u barındırdığınızı varsayarak)
3) ngrok'un çıkardığı URL'yi kaydedin:
4) TensorBoard'u görüntülemek için bunu herhangi bir tarayıcıya girin:
Sam Kirkiles'e özel teşekkürler