You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SSH远程保存并查看模型训练的实时绘图?

远程SSH查看模型训练实时状态与绘图的实用方案

嘿,我来给你几个亲测有效的方案,完美解决你通过SSH远程监控模型训练实时数据和动态绘图的需求:

方案1:SSH X11转发直接显示远程绘图

这个方法最直接,相当于把远程服务器的绘图窗口「投屏」到你本地电脑上,不用折腾文件同步或额外服务。

  • 本地连接远程时开启X11转发:
    ssh -X your_username@remote_server_ip
    # 要是信任远程服务器,用-Y速度更快:
    ssh -Y your_username@remote_server_ip
    
  • 确保远程环境支持X11:
    远程服务器需要安装xauth(大部分Linux发行版默认自带,没有的话用apt install xauth或yum install xauth补上),然后给matplotlib指定支持X11的后端,在代码开头加:
    import matplotlib
    matplotlib.use('TkAgg')  # 也可以选Qt5Agg,看你远程环境支持哪个
    
  • 修改你的动画代码:
    调整后让远程运行的动画能持续更新并通过X11转发到本地显示:
    import numpy as np
    import matplotlib
    matplotlib.use('TkAgg')
    import matplotlib.pyplot as plt
    import matplotlib.animation as animation
    
    fig = plt.figure()
    
    def animate(i):
        fig.clf()
        plt.suptitle('Training Real-time Metrics')
        # 这里替换成你实际解析模型输出的逻辑
        values = np.random.randint(0, 100, (100,))
        plt.plot(np.arange(100), values)
        plt.xlabel('Training Step')
        plt.ylabel('Metric Value')
    
    # 启动动画,1秒更新一次
    ani = animation.FuncAnimation(fig, animate, interval=1000)
    plt.show()  # 保持窗口不关闭
    
    运行后本地会弹出实时更新的窗口,缺点是网络延迟高时会有点卡顿,适合近距离远程连接。

方案2:实时同步静态图片到本地查看

如果X11转发太卡,这个方案更稳妥:远程训练时持续覆盖保存一张静态图,再同步到本地用工具自动刷新。

  • 远程代码修改:
    把动画逻辑改成定时保存覆盖同一张图片:
    import numpy as np
    import matplotlib.pyplot as plt
    import time
    
    while True:
        plt.clf()
        plt.suptitle('Training Real-time Metrics')
        values = np.random.randint(0, 100, (100,))
        plt.plot(np.arange(100), values)
        plt.xlabel('Training Step')
        plt.ylabel('Metric Value')
        # 覆盖保存,用bbox_inches避免标题被截断
        plt.savefig('training_plot.png', bbox_inches='tight')
        plt.close()  # 释放内存资源
        time.sleep(1)  # 每秒更新一次
    
  • 本地同步图片:
    开个新终端,用rsync定时拉取远程图片:
    # 替换成你的远程路径和本地保存路径,每秒同步一次
    while true; do rsync -avz your_username@remote_server_ip:/path/to/training_plot.png /your/local/save/folder/; sleep 1; done
    
  • 本地自动刷新查看:
    • Linux用feh:feh --auto-reload /your/local/save/folder/training_plot.png
    • Windows用IrfanView,开启「自动重新加载」功能
    • Mac可以用第三方工具如qlmanage配合脚本自动刷新,或者手动刷新Preview

方案3:搭建简易Web服务远程访问

适合多人查看或网络环境复杂的场景,远程启个轻量Web服务,本地浏览器就能看实时图。

  • 远程安装Flask:pip install flask
  • 编写Flask服务代码(存为plot_server.py):
    from flask import Flask, send_file
    import numpy as np
    import matplotlib.pyplot as plt
    import io
    
    app = Flask(__name__)
    
    def generate_latest_plot():
        plt.clf()
        plt.suptitle('Training Real-time Metrics')
        values = np.random.randint(0, 100, (100,))
        plt.plot(np.arange(100), values)
        plt.xlabel('Training Step')
        plt.ylabel('Metric Value')
        # 把图片存到内存缓冲区,不用写磁盘
        img_buf = io.BytesIO()
        plt.savefig(img_buf, format='png', bbox_inches='tight')
        img_buf.seek(0)
        plt.close()
        return img_buf
    
    @app.route('/plot')
    def get_plot():
        return send_file(generate_latest_plot(), mimetype='image/png')
    
    if __name__ == '__main__':
        # 绑定0.0.0.0让外部能访问,端口选个空闲的比如5000
        app.run(host='0.0.0.0', port=5000)
    
  • 远程启动服务:python plot_server.py
  • 本地端口转发访问:
    ssh -L 5000:localhost:5000 your_username@remote_server_ip
    
    然后在本地浏览器打开http://localhost:5000/plot,装个自动刷新插件就能实时看更新了。

方案4:用TensorBoard(深度学习专属)

如果你用TensorFlow或PyTorch训练,TensorBoard是最专业的选择——不仅能看绘图,还能监控指标、参数分布等。

  • 训练代码加日志记录(以PyTorch为例):
    from torch.utils.tensorboard import SummaryWriter
    import numpy as np
    import time
    
    writer = SummaryWriter(log_dir='./tb_training_logs')
    step = 0
    
    while True:
        # 模拟模型输出的指标
        metric_val = np.random.randint(0, 100)
        # 写入 scalar 指标
        writer.add_scalar('Training Accuracy', metric_val, step)
        # 写入曲线图像
        values = np.random.randint(0, 100, (100,))
        fig = plt.figure()
        fig.plot(np.arange(100), values)
        writer.add_figure('Accuracy Curve', fig, step)
        plt.close(fig)
        step += 1
        time.sleep(1)
    
  • 远程启动TensorBoard:
    tensorboard --logdir=./tb_training_logs --port=6006
    
  • 本地端口转发访问:
    ssh -L 6006:localhost:6006 your_username@remote_server_ip
    
    本地浏览器打开http://localhost:6006,就能看到所有实时更新的训练数据和可视化内容了。

内容的提问来源于stack exchange,提问作者TJain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:34:05