Saya baru mengenal Tensorflow dan akan sangat diuntungkan dari beberapa visualisasi tentang apa yang saya lakukan. Saya memahami bahwa Tensorboard adalah alat visualisasi yang berguna, tetapi bagaimana cara menjalankannya di mesin Ubuntu jarak jauh saya?
116
Jawaban:
Inilah yang saya lakukan untuk menghindari masalah membuat server jarak jauh menerima IP eksternal lokal Anda:
-L
untuk mentransfer port6006
server jarak jauh ke port16006
mesin saya (misalnya):ssh -L 16006:127.0.0.1:6006 olivier@my_server_ip
Apa yang dilakukannya adalah bahwa semua yang ada di port
6006
server (masuk127.0.0.1:6006
) akan diteruskan ke mesin saya di port16006
.tensorboard --logdir log
dengan6006
port defaultsumber
127.0.0.1
ini ip mesin lokal Anda , jadi Anda harus membiarkannya apa adanya. Jangan mengubahnya ke ip jarak jauh Anda. Saya menyia-nyiakan 10 menit untuk ini. Bodohnya aku!-4
bendera ssh menyelesaikannya. Membaca pertanyaan serupa, banyak yang mengalami masalah dengan alamat IPv6 di server mereka.-N
bendera untuk menghindari membuka shell ssh. Menambahkan-f
menempatkan koneksi ssh di latar belakang.Anda dapat mem-port-forward dengan
ssh
perintah lain yang tidak perlu terikat dengan cara Anda terhubung ke server (sebagai alternatif dari jawaban lain). Jadi, urutan langkah-langkah di bawah ini sewenang-wenang.dari mesin lokal Anda , jalankan
ssh -N -f -L localhost:16006:localhost:6006 <user@remote>
di mesin jarak jauh , jalankan:
tensorboard --logdir <path> --port 6006
Kemudian, navigasikan ke (dalam contoh ini) http: // localhost: 16006 di komputer lokal Anda.
(penjelasan dari perintah ssh:
-N
: tidak ada perintah jarak jauh-f
: letakkan ssh di latar belakang-L <machine1>:<portA>:<machine2>:<portB>
:maju
<machine2>:<portB>
(lingkup jarak jauh) ke<machine1>:<portA>
(lingkup lokal)sumber
Anda tidak perlu melakukan sesuatu yang mewah. Lari saja:
dan hubungkan dengan url dan port server Anda. Perintah tersebut
--host 0.0.0.0
memberi tahu tensorflow untuk mendengarkan dari koneksi di semua alamat IPv4 di mesin lokal.sumber
Pilihan lain jika Anda tidak bisa membuatnya berfungsi karena alasan tertentu adalah dengan memasang direktori logdir pada sistem berkas Anda dengan sshfs:
sshfs user@host:/home/user/project/summary_logs ~/summary_logs
lalu jalankan Tensorboard secara lokal.
sumber
"whats my ip"
atau memasukkan perintah ini:wget http://ipinfo.io/ip -qO -
wget http://ipinfo.io/ip -qO -
lagi dari sana.6006
123.123.12.32:6006
Jika server jarak jauh Anda terbuka untuk lalu lintas dari alamat IP lokal Anda, Anda seharusnya dapat melihat Tensorboard jarak jauh Anda.
Peringatan : jika semua lalu lintas internet dapat mengakses sistem Anda (jika Anda belum menentukan satu alamat IP yang dapat mengaksesnya), siapa pun mungkin dapat melihat hasil TensorBoard Anda dan kabur dengan membuat SkyNet sendiri.
sumber
Ini bukan jawaban yang tepat tetapi pemecah masalah, mudah-mudahan membantu networker kurang berpengalaman lainnya seperti saya.
Dalam kasus saya (firefox + ubuntu16) browser terhubung, tetapi menampilkan halaman kosong (dengan logo tensorboard di tab), dan tidak ada aktivitas log sama sekali. Saya masih tidak tahu apa yang bisa menjadi alasan untuk itu (tidak terlalu memperhatikannya tetapi jika ada yang tahu, beri tahu!), Tetapi saya menyelesaikannya dengan beralih ke browser default ubuntu. Berikut langkah-langkah pastinya, hampir sama dengan jawaban @Olivier Moindrot:
tensorboard --logdir=. --host=localhost --port=6006
ssh -p 23 <USER>@<SERVER> -N -f -L localhost:16006:localhost:6006
Browser
dan kunjungilocalhost:16006
. Halaman tensorboard harus dimuat tanpa banyak penundaan.Untuk memeriksa apakah terowongan SSH berfungsi secara efektif, server gema sederhana seperti skrip python ini dapat membantu:
<ECHO>.py
file di server dan jalankan denganpython <ECHO>.py
. Sekarang server akan mendengarkan skrip echo di 0.0.0.0:5555 .ssh -p <SSH_PORT> <USER>@<SERVER> -N -f -L localhost:12345:localhost:5555
telnet localhost 12345
akan terhubung ke skrip gema yang berjalan di server. Mengetikhello
dan menekan enter akan mencetakhello
kembali. Jika demikian, tunnel SSH Anda berfungsi. Ini adalah kasus saya, dan membawa saya pada kesimpulan bahwa masalahnya melibatkan browser. Mencoba menyambung dari terminal lain menyebabkan terminal macet.Seperti yang saya katakan, semoga membantu!
Salam,
Andres
sumber
https://github.com/dmlc/tensorboard
hanya untuk menambahkan lebih banyak alternatif ke mempersiapkan. CheersAnda dapat langsung menjalankan perintah berikut di terminal server jarak jauh Anda untuk menjalankan tensorboard:
Atau Anda juga dapat memulai tensorboard dalam notebook ipython Anda:
sumber
Anda harus membuat koneksi ssh menggunakan port forwarding:
Kemudian Anda menjalankan
tensorboard
perintah:Kemudian Anda dapat dengan mudah mengakses
tensorboard
di browser Anda di bawah:sumber
--bind_all
opsi berguna.Port akan secara otomatis dipilih dari 6006 secara bertahap. (6006, 6007, 6008 ...)
sumber
Untuk siapa saja yang harus menggunakan kunci ssh (untuk server perusahaan).
Tambahkan saja
-i /.ssh/id_rsa
di bagian akhir.$ ssh -N -f -L localhost:8211:localhost:6007 myname@servername -i /.ssh/id_rsa
sumber
Saat menjalankan tensorboard berikan satu opsi lagi --host = ip dari sistem Anda dan kemudian Anda dapat mengaksesnya dari sistem lain menggunakan http: // ip dari sistem host Anda : 6006
sumber
Pendekatan lain adalah dengan menggunakan proxy terbalik , yang memungkinkan Anda melihat Tensorboard dari perangkat apa pun yang terhubung ke internet tanpa SSHing . Pendekatan ini dapat membuat tampilan Tensorboard di perangkat seluler menjadi jauh lebih mudah / praktis, misalnya.
Langkah:
1) Unduh reverse proxy Ngrok di mesin remote hosting Tensorboard Anda. Lihat https://ngrok.com/download untuk instruksi (~ pengaturan 5 menit).
2) Jalankan
ngrok http 6006
(dengan asumsi Anda menghosting Tensorboard di port 6006)3) Simpan URL yang dihasilkan ngrok:
4) Masukkan itu ke browser apa pun untuk melihat TensorBoard:
Terima kasih khusus kepada Sam Kirkiles
sumber