Я новичок в Tensorflow и получаю большую пользу от некоторых визуализаций того, что я делаю. Я понимаю, что Tensorboard - полезный инструмент визуализации, но как его запустить на удаленном компьютере Ubuntu?
Как запустить Tensorboard на удаленном сервере?
Ответ 1
Вот что я делаю, чтобы избежать проблем, связанных с получением удаленного сервера локальным внешним IP-адресом:
- когда я ssh в машину, я использую параметр
-L
для переноса порта6006
удаленного сервера в порт16006
моей машины (например):ssh -L 16006:127.0.0.1:6006 [email protected]_server_ip
Что он делает, так это то, что все на порту 6006
сервера (в 127.0.0.1:6006
) будет переадресовано на мою машину на порту 16006
.
- Затем вы можете запустить тензограмму на удаленном компьютере с помощью стандартного
tensorboard --logdir log
с портом6006
по умолчанию - На вашей локальной машине перейдите в http://127.0.0.1:16006 и наслаждайтесь удаленным TensorBoard.
Ответ 2
- Найдите локальный внешний IP-адрес с помощью googling
"whats my ip"
или введите следующую команду:wget http://ipinfo.io/ip -qO -
- Определите свой внешний внешний IP-адрес. Вероятно, это то, что происходит после вашего имени пользователя при отправке на удаленный сервер. Вы также можете снова
wget http://ipinfo.io/ip -qO -
оттуда тоже. - Защитите свой трафик удаленного сервера, чтобы просто принять локальный внешний IP-адрес.
- Запустите Tensorboard. Обратите внимание на порт по умолчанию:
6006
- Введите свой внешний внешний IP-адрес в свой браузер, а затем порт:
123.123.12.32:6006
Если ваш удаленный сервер открыт для трафика с вашего локального IP-адреса, вы сможете увидеть свою удаленную Tensorboard.
Предупреждение: если все интернет-трафик может получить доступ к вашей системе (если вы не указали ни одного IP-адреса, который может получить к нему доступ), каждый может просмотреть ваши результаты TensorBoard и побег с созданием самих SkyNet.
Ответ 3
Вы можете перенаправить порт с помощью другой команды ssh
, которая не должна быть привязана к тому, как вы подключаетесь к серверу (в качестве альтернативы другому ответу). Таким образом, порядок нижеследующих шагов произволен.
- с вашей локальной машины, запустите
ssh -N -f -L localhost:16006:localhost:6006 <[email protected]>
- на машине remote, запустите
tensorboard --logdir <path>
(объяснение команды ssh:
-N
: нет удаленных команд
-f
: поставить ssh в фоновом режиме
-L <machine1>:<portA>:<machine2>:<portB>
: forward <machine2>:<portB>
(удаленная область) до <machine1>:<portA>
(локальная область)
Ответ 4
Другой вариант, если вы не можете заставить его работать по какой-либо причине, - просто установить каталог logdir в вашей файловой системе с помощью sshfs:
sshfs [email protected]:/home/user/project/summary_logs ~/summary_logs
а затем запустите Tensorboard локально.
Ответ 5
Вам не нужно ничего делать. Просто запустите:
tensorboard --host 0.0.0.0 <other args here>
и подключитесь к серверному URL и порту. --host 0.0.0.0
сообщает функции tensorflow прослушивать соединения на всех IPv4-адресах на локальной машине.
Ответ 6
Это не правильный ответ, но устранение неполадок, надеюсь, поможет другим менее опытным сетевым пользователям, таким как я.
В моем случае (firefox + ubuntu16) браузер подключался, но показывал пустую страницу (с логотипом тензодатчика на вкладке), и никакой активности журнала вообще не было показано. Я до сих пор не знаю, что может быть причиной этого (не смотря на это много, но если кто-нибудь знает, пожалуйста, сообщите об этом!), Но я решил, что он переключается на браузер Ubuntu по умолчанию. Здесь точные шаги, почти такие же, как в @Olivier Moindrot, отвечают:
- На сервере запустите тензограмму:
tensorboard --logdir=. --host=localhost --port=6006
- На клиенте откройте ssh tunnel
ssh -p 23 <USER>@<SERVER> -N -f -L localhost:16006:localhost:6006
- Откройте ubuntu
Browser
и зайдите вlocalhost:16006
. Страница тензокартона должна загружаться без большой задержки.
Чтобы проверить, что туннель SSH эффективно работает, простой эхо-сервер, например этот python script может помочь:
- Поместите файл script в файл
<ECHO>.py
на сервере и запустите его с помощьюpython <ECHO>.py
. Теперь на сервере будет отображаться echo script на 0.0.0.0:5555. - На клиенте откройте ssh tunnel
ssh -p <SSH_PORT> <USER>@<SERVER> -N -f -L localhost:12345:localhost:5555
- На клиенте в том же терминале, который используется для открытия туннеля (шаг 2.), выдача
telnet localhost 12345
будет подключаться к эхо файлу script, запущенному на сервере. Набравhello
и нажав enter, напечатайтеhello
назад. Если это так, ваш туннель SSH работает. Это был мой случай и привели меня к выводу, что проблема связана с браузером. Попытка подключиться с другого терминала заставила терминал замораживаться.
Как я уже сказал, надеюсь, что это поможет!
Cheers,
Andres
Ответ 7
При запуске тензорной панели добавьте еще один параметр --host = ip вашей системы, а затем вы можете получить к нему доступ из другой системы, используя http:// ip вашей хост-системы: 6006
Ответ 8
Вам нужно создать ssh-соединение, используя переадресацию портов:
ssh -L 16006:127.0.0.1:6006 [email protected]
Затем вы запустите команду tensorboard
:
tensorboard --logdir=/path/to/logs
Затем вы можете легко получить доступ к tensorboard
в своем браузере в разделе:
localhost:16006/