Я новачок у Tensorflow і отримав би велику користь від деяких уявлень про те, що я роблю. Я розумію, що Tensorboard - це корисний інструмент візуалізації, але як запустити його на моїй віддаленій машині Ubuntu?
Я новачок у Tensorflow і отримав би велику користь від деяких уявлень про те, що я роблю. Я розумію, що Tensorboard - це корисний інструмент візуалізації, але як запустити його на моїй віддаленій машині Ubuntu?
Відповіді:
Ось що я роблю, щоб уникнути проблем змушення віддаленого сервера прийняти ваш локальний зовнішній IP:
-Lдля перенесення порту 6006віддаленого сервера в порт 16006моєї машини (наприклад):
ssh -L 16006:127.0.0.1:6006 olivier@my_server_ip
Це означає, що все, що знаходиться на порту 6006сервера (в 127.0.0.1:6006), буде перенаправлено на мою машину на порт 16006.
tensorboard --logdir logіз 6006портом за замовчуванням127.0.0.1ось ваш ip локальної машини, тому вам слід залишити його таким, яким він є. Не змінюйте його на віддалений ip. Я витратив на це 10 хвилин. Який я дурний!
-4прапора ssh вирішило це. Читаючи подібні запитання, у багатьох виникли проблеми з IPv6 адресами на їх серверах.
-Nпрапор, щоб уникнути відкриття оболонки ssh. Додавання -fвиводить ssh-з'єднання на задній план.
Ви можете переслати порт з іншою 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Каже tensorflow слухати від з'єднань на всіх IPv4 - адрес на локальному комп'ютері.
Інший варіант, якщо ви не можете змусити його працювати з якихось причин, це просто встановити каталог logdir у вашу файлову систему за допомогою sshfs:
sshfs user@host:/home/user/project/summary_logs ~/summary_logs
а потім запустити Tensorboard локально.
"whats my ip"або введення цієї команди:wget http://ipinfo.io/ip -qO -wget http://ipinfo.io/ip -qO -знову звідти.6006123.123.12.32:6006Якщо ваш віддалений сервер відкритий для руху з вашої локальної IP-адреси, ви зможете побачити ваш віддалений Tensorboard.
Попередження : якщо весь інтернет-трафік може отримати доступ до вашої системи (якщо ви не вказали єдиної IP-адреси, яка може отримати доступ до неї), будь-хто може мати можливість переглядати ваші результати TensorBoard і тікати, створюючи SkyNet самостійно.
Це не правильна відповідь, а усунення несправностей, сподіваємось, допомагає іншим менш досвідченим мережам, як я.
У моєму випадку (firefox + ubuntu16) браузер підключався, але показував порожню сторінку (з логотипом тензорної дошки на вкладці), і активність журналу взагалі не відображалася. Я до сих пір не знаю, що може бути причиною цього (я не дуже заглядав, але якщо хтось знає, будь ласка, повідомте!), Але я вирішив це, перейшовши на браузер за замовчуванням ubuntu. Ось точні кроки, майже такі ж, як у відповіді @Olivier Moindrot:
tensorboard --logdir=. --host=localhost --port=6006ssh -p 23 <USER>@<SERVER> -N -f -L localhost:16006:localhost:6006Browserі відвідайте localhost:16006. Сторінка тензорної дошки повинна завантажуватися без особливих затримок.Щоб переконатися, що тунель SSH ефективно працює, може допомогти простий ехо-сервер на зразок цього сценарію python :
<ECHO>.pyфайл на сервері та запустіть його python <ECHO>.py. Тепер сервер матиме сценарій ехо-прослуховування на 0.0.0.0what555 .ssh -p <SSH_PORT> <USER>@<SERVER> -N -f -L localhost:12345:localhost:5555telnet localhost 12345підключиться до сценарію ехо, що працює на сервері. Введення helloта натискання клавіші Enter має надрукувати helloназад. Якщо це так, ваш тунель SSH працює. Це був мій випадок і привів мене до висновку, що проблема стосувалася браузера. Спроба підключитися з іншого терміналу призвела до замерзання терміналу.Як я вже сказав, сподіваюся, що це допоможе!
Ура,
Андрес
https://github.com/dmlc/tensorboardпросто для додавання більше альтернатив до налаштування. Ура
Ви можете безпосередньо запустити наступну команду на терміналі віддаленого сервера для запуску тензорної плати:
tensorboard --logdir {tf_log directory path} --host "0.0.0.0" --port 6006
Або ви також можете запустити тензор у вашому ноутбуці ipython:
%load_ext tensorboard
%tensorboard --logdir {tf_log directory path} --host "0.0.0.0" --port 6006
Ви повинні створити ssh-з'єднання за допомогою переадресації портів:
ssh -L 16006:127.0.0.1:6006 user@host
Потім ви запускаєте tensorboardкоманду:
tensorboard --logdir=/path/to/logs
Тоді ви можете легко отримати доступ до tensorboardсвого браузера в розділі:
localhost:16006/
Під час роботи тензорної плати дайте ще один варіант --host = ip вашої системи, і тоді ви можете отримати доступ до неї з іншої системи, використовуючи http: // ip вашої хост-системи : 6006
Інший підхід полягає у використанні зворотного проксі-сервера , який дозволяє переглядати Tensorboard з будь-якого пристрою, підключеного до Інтернету, без SSHing . Такий підхід може, наприклад, значно полегшити / простежити перегляд Tensorboard на мобільних пристроях.
Кроки:
1) Завантажте зворотний проксі Ngrok на віддалений комп'ютер, на якому розміщено Tensorboard. Інструкції див. На веб-сторінці https://ngrok.com/download (~ 5 хвилин).
2) Запустити ngrok http 6006(припустимо, що ви розміщуєте Tensorboard на порту 6006)
3) Збережіть URL-адресу, яку виводить ngrok:
4) Введіть це в будь-який браузер, щоб переглянути TensorBoard:
Особлива подяка Сему Кіркілес