利用内网穿透工具ngrok实现远程访问Linux服务器上的TensorBoard服务

引言

在深度学习研究过程中,我们经常需要与团队共享训练过程中的可视化数据。TensorBoard是一款强大的可视化工具,用于展示模型训练过程中各种指标的变化情况,如损失函数曲线、权重分布图等。然而,在没有公网IP的情况下,本地搭建的TensorBoard服务往往只能在服务器本地访问。为了解决这一问题,我们可以借助内网穿透工具ngrok来实现在任意网络环境下远程访问服务器上运行的TensorBoard服务。以下是如何通过ngrok实现这一目标的详细步骤。

步骤一:安装与启动TensorBoard

首先,确保你已经在Linux服务器上成功安装了TensorFlow,并且有一个训练日志目录。假设你的日志位于 /path/to/tensorflow/logs 下,你可以启动TensorBoard服务:

tensorboard --logdir=/path/to/tensorflow/logs --port=6006

上述命令会在服务器上监听6006端口,并显示一个本地URL(通常是 http://localhost:6006),但在外部网络环境下无法直接访问。

步骤二:安装ngrok

如果没有安装ngrok,可以通过curl命令在服务器上快速安装:

wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
unzip ngrok-stable-linux-amd64.zip
sudo mv ngrok /usr/local/bin/

步骤三:注册并获取ngrok Authtoken

为了获得更稳定的隧道服务,你需要在ngrok官方网站注册并获取Authtoken。将Authtoken添加到ngrok配置中(如果尚未配置):

ngrok config add-authtoken your_auth_token_here

或者

echo "authtoken: your_auth_token_here" > ~/.ngrok2/ngrok.yml

步骤四:使用ngrok进行内网穿透

接下来,通过ngrok启动一个隧道,将其指向TensorBoard正在监听的本地端口:

ngrok http 6006

运行上述命令后,ngrok会输出类似如下信息:

Session Status                online
Account                       YourUsername (Plan: Free)
Version                       2.3.40
Region                        United States (us)
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://abcdefg.ngrok.io -> http://localhost:6006
Forwarding                    https://abcdefg.ngrok.io -> http://localhost:6006

步骤五:远程访问TensorBoard

复制ngrok提供的HTTPS链接(例如上述例子中的 https://abcdefg.ngrok.io),并在任意设备的浏览器中打开这个链接,你就能看到远程服务器上运行的TensorBoard界面了。

猜你喜欢

转载自blog.csdn.net/shysea2019/article/details/137015350
今日推荐