【pytorch深度学习 应用篇02】训练过程可视化

参考

安装相关库

bash 复制代码
pip install tensorboardX
pip install tensorboard

训练代码

python 复制代码
from tensorboardX import SummaryWriter
logger = SummaryWriter(log_dir="data/log")
 
# 获取优化器和损失函数
optimizer = torch.optim.Adam(MyConvNet.parameters(), lr=3e-4)
loss_func = nn.CrossEntropyLoss()
log_step_interval = 100# 记录的步数间隔
 
for epoch in range(5):
     print("epoch:", epoch)
     # 每一轮都遍历一遍数据加载器
     for step, (x, y) in enumerate(train_loader):
         # 前向计算->计算损失函数->(从损失函数)反向传播->更新网络
         predict = MyConvNet(x)
         loss = loss_func(predict, y)
         optimizer.zero_grad()   # 清空梯度(可以不写)
         loss.backward()     # 反向传播计算梯度
         optimizer.step()    # 更新网络
         global_iter_num = epoch * len(train_loader) + step + 1# 计算当前是从训练开始时的第几步(全局迭代次数)
         if global_iter_num % log_step_interval == 0:
             # 控制台输出一下
             print("global_step:{}, loss:{:.2}".format(global_iter_num, loss.item()))
             # 添加的第一条日志:损失函数-全局迭代次数
             logger.add_scalar("train loss", loss.item() ,global_step=global_iter_num)
             # 在测试集上预测并计算正确率
             test_predict = MyConvNet(test_data_x)
             _, predict_idx = torch.max(test_predict, 1)     # 计算softmax后的最大值的索引,即预测结果
             acc = accuracy_score(test_data_y, predict_idx)
             # 添加第二条日志:正确率-全局迭代次数
             logger.add_scalar("test accuary", acc.item(), global_step=global_iter_num)
             # 添加第三条日志:这个batch下的128张图像
             img = vutils.make_grid(x, nrow=12)
             logger.add_image("train image sample", img, global_step=global_iter_num)
             # 添加第三条日志:网络中的参数分布直方图
             for name, param in MyConvNet.named_parameters():
                 logger.add_histogram(name, param.data.numpy(), global_step=global_iter_num)

绑定端口

如果直接在服务器查看

bash 复制代码
$ tensorboard --logdir=xxx --port=6006

如果想在客户端查看

bash 复制代码
# ssh -L 服务器端口:127.0.0.1:客户端端口 服务器中你的用户名name@服务器的ip  
# 有的服务器做了端口映射 所以-p后面添加你服务器的连接端口号,默认是22端口 
$ ssh -L 16006:127.0.0.1:6006  name@ip -p 22
$ export LC_ALL=C
$ tensorboard --logdir=path --port=6006 # path是你服务器上保存的tensorboard文件

查看

在本地浏览器中访问http://localhost:6006/

相关推荐
我爱cope1 小时前
【Agent智能体21 | 构建AI工作流的技巧-优化组件的常用方法】
人工智能·设计模式·语言模型·职场和发展
x_lrong1 小时前
AMD 7800xt + WSL2 + ROCm7.2.1 配置AI开发环境
人工智能
逐梦苍穹1 小时前
我开源了一个Claude Code历史可视化工具:本地Prompt一键浏览、搜索、导出
人工智能·开源·prompt·codex·claudecode
刘国华-平价IT运维课堂1 小时前
Ubuntu 26.04 LTS 发布,研发与运维需要关注什么?
linux·运维·服务器·人工智能·ubuntu
专注搞钱1 小时前
半导体行业中基于 LSTM 神经网络的 SPC 异常预测实战
人工智能·rnn·lstm
糖果店的幽灵1 小时前
Spring AI 从入门到精通-ChatClient你与 AI 对话的终极武器
人工智能·python·spring
蓝速科技1 小时前
蓝速科技丨立式全面屏 AI 数字人交互一体机落地实战指南
人工智能·科技·交互
暮雪倾风1 小时前
【AI】CC switch安装与使用教程:告别繁琐配置,解锁 AI 编程 CLI 一键管理
人工智能·chatgpt·claudecode·ccswitch
linge_sun1 小时前
Sping AI 使用 Ollama 快速搭建本地知识库
java·人工智能·ai编程
Cloud_Shy6181 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第四章 Item 25 - 26)
开发语言·人工智能·经验分享·笔记·python·学习方法