当前位置: 首页 > news >正文

[第二天 4h]学习deep learning ,无GPU的PC,ubuntu24

在deepseek 回答中,继续深挖。

迭代和实验:深度学习是高度实验性的。系统地改变超参数(学习率、批大小、层数等),并使用 TensorBoardWeights & Biases 等工具来跟踪和可视化你的实验结果。

Q:【deepseek】作为人工智能专家,TensorBoard 或 Weights & Biases 等工具来跟踪和可视化你的实验结果。具体怎么DO?

A:【deepseek】整理记录

太好了!作为人工智能专家,我非常推荐使用这些工具。它们能彻底改变你的实验管理方式。我来详细讲解 TensorBoardWeights & Biases (W&B) 的使用方法。

 

TensorBoard

TensorBoard 是 TensorFlow 生态的原生可视化工具,但也完美支持 PyTorch。

安装与基本使用

bash
 # 如果使用 TensorFlow,通常已经自带
# 如果单独安装或用于 PyTorch
(dl_env) ubuntu@ubuntu-Inspiron-N4050:~$ pip install tensorboard

在 PyTorch 中的集成

import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.tensorboard import SummaryWriter
from torchvision import datasets, transforms
from torch.utils.data import DataLoader
import torchvision
import numpy as np
#补充
#[W824 10:23:53.141795619 NNPACK.cpp:56] Could not initialize NNPACK! Reason: Unsupported hardware.
#NNPACK 是 Facebook 开发的一个加速神经网络计算的库,但它需要特定的 CPU 指令集(如 ARM NEON 或 x86 AVX2)。您的硬件可能不支持这些指令,所以 PyTorch 无法初始化 NNPACK,但它会自动回退到其他的计算后端。
# 1. 定义模型(必须在使用前定义!)
class SimpleCNN(nn.Module):def __init__(self):super(SimpleCNN, self).__init__()self.conv1 = nn.Conv2d(1, 32, kernel_size=3, padding=1)self.conv2 = nn.Conv2d(32, 64, kernel_size=3, padding=1)self.pool = nn.MaxPool2d(2, 2)self.fc1 = nn.Linear(64 * 7 * 7, 128)self.fc2 = nn.Linear(128, 10)self.relu = nn.ReLU()self.dropout = nn.Dropout(0.5)def forward(self, x):x = self.pool(self.relu(self.conv1(x)))x = self.pool(self.relu(self.conv2(x)))x = x.view(-1, 64 * 7 * 7)x = self.relu(self.fc1(x))x = self.dropout(x)x = self.fc2(x)return x# 2. 创建模型实例
model = SimpleCNN()
print("模型创建成功")# 3. 创建 SummaryWriter
writer = SummaryWriter('runs/mnist_experiment')# 4. 准备数据
transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,), (0.5,))
])# 下载数据
train_dataset = datasets.MNIST(root='./data', train=True, download=True, transform=transform)
train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)test_dataset = datasets.MNIST(root='./data', train=False, download=True, transform=transform)
test_loader = DataLoader(test_dataset, batch_size=1000, shuffle=False)# 5. 记录模型结构(现在model已经定义了!)
dummy_input = torch.randn(1, 1, 28, 28)  # 创建虚拟输入
writer.add_graph(model, dummy_input)
print("模型图已记录到TensorBoard")# 6. 记录一些训练数据样本
dataiter = iter(train_loader)
images, labels = next(dataiter)# 创建图像网格
img_grid = torchvision.utils.make_grid(images)
writer.add_image('mnist_images', img_grid)
print("训练样本图像已记录")# 7. 定义损失函数和优化器
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)# 8. 训练函数
def train_model():model.train()running_loss = 0.0correct = 0total = 0for epoch in range(3):  # 只训练3个epoch作为演示for i, (images, labels) in enumerate(train_loader):# 清零梯度
            optimizer.zero_grad()# 前向传播outputs = model(images)loss = criterion(outputs, labels)# 反向传播和优化
            loss.backward()optimizer.step()running_loss += loss.item()_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()# 每100个batch记录一次if i % 100 == 99:avg_loss = running_loss / 100accuracy = 100 * correct / total# 记录到TensorBoardwriter.add_scalar('training_loss', avg_loss, epoch * len(train_loader) + i)writer.add_scalar('training_accuracy', accuracy, epoch * len(train_loader) + i)print(f'Epoch [{epoch+1}], Batch [{i+1}], Loss: {avg_loss:.4f}, Accuracy: {accuracy:.2f}%')running_loss = 0.0correct = 0total = 0# 记录每个epoch结束后的学习率writer.add_scalar('learning_rate', optimizer.param_groups[0]['lr'], epoch)# 记录模型权重和梯度的直方图for name, param in model.named_parameters():writer.add_histogram(f'{name}/weights', param, epoch)if param.grad is not None:writer.add_histogram(f'{name}/gradients', param.grad, epoch)# 9. 评估函数
def evaluate_model():model.eval()correct = 0total = 0test_loss = 0with torch.no_grad():for images, labels in test_loader:outputs = model(images)loss = criterion(outputs, labels)test_loss += loss.item()_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()accuracy = 100 * correct / totalavg_loss = test_loss / len(test_loader)writer.add_scalar('test_accuracy', accuracy, 0)writer.add_scalar('test_loss', avg_loss, 0)print(f'测试集准确率: {accuracy:.2f}%')return accuracy, avg_loss# 10. 运行训练和评估
print("开始训练...")
train_model()print("开始评估...")
test_accuracy, test_loss = evaluate_model()# 11. 记录超参数和最终指标
writer.add_hparams({'lr': 0.001, 'batch_size': 64, 'optimizer': 'Adam'},{'hparam/accuracy': test_accuracy, 'hparam/loss': test_loss}
)# 12. 关闭writer
writer.close()
print("TensorBoard记录完成!")
print(f"日志保存在: runs/mnist_experiment")
print("运行命令: tensorboard --logdir=runs/ --port=6006")

 

启动 TensorBoard

启动

# 绑定到所有IPv4地址
tensorboard --logdir=runs/ --port=6006 --host 0.0.0.0# 或者绑定到本地环回地址
tensorboard --logdir=runs/ --port=6006 --host 127.0.0.1

$ TensorBoard 2.20.0 at http://127.0.0.1:6006/ (Press CTRL+C to quit)
#不要退出,否则没有链接看图了。

成功启动后,在浏览器中访问:

  • http://localhost:6006

  • 或者 http://127.0.0.1:6006

  • 或者使用您的机器IP:http://<your-ip-address>:6006

如果您想查看生成的日志文件

bash
 
# 查看生成的日志文件
ls -la runs/mnist_experiment/# 查看文件内容(前几个文件)
ls runs/mnist_experiment/ | head -5

#####################################

http://www.fuzeviewer.com/news/1073/

相关文章:

  • 2025年10月生产计划管理咨询公司推荐榜:五强口碑与实力排行
  • 2025年10月生产计划管理咨询公司推荐:榜单排名五强指标导向
  • 2025年10月供应链管理咨询公司推荐:五强榜单评价全览
  • 2025年10月离婚房产律师排行:权威榜单与实测评价
  • 常见问题解决 --- npcap在云电脑安装报错
  • 四场比赛(三)
  • 百航鹿大联训 Pwn篇
  • 连中五标,中电金信国际化服务助力企业出海
  • 2025年市面上别墅石材品牌与行业内别墅石材源头厂家推荐榜单及口碑好的别墅石材产品分析
  • 2025 年工业除湿机,恒温恒湿机,精密空调,除湿加湿一体机厂家最新推荐,产能、专利、环保三维数据透视
  • 2025年10月精益制造咨询公司推荐:榜单揭晓与选型思路
  • 2025年10月数字化咨询公司推荐:五强榜单与实战对比
  • 2025年10月降本增效咨询公司推荐:实力榜与数据对比
  • 数据如何赋能出版 解锁乘数效应
  • 2025 年聚丙烯酰胺絮凝剂,PAM 聚丙烯酰胺,聚丙烯酰胺聚合氯化铝厂家最新推荐,产能、专利、环保三维数据透视
  • 2025年盘式干燥机厂家权威推荐榜单:回转滚筒干燥机/真空干燥机/沸腾干燥机源头厂家精选
  • Windows Server 2016 OVF (2025 年 10 月更新) - VMware 虚拟机模板
  • 2025年高压耐火装饰板厂家权威推荐榜单:高压耐火隔断板/建筑耐火板/高压耐火吊顶板源头厂家精选
  • 腾讯CodeBuddy:AI IDE的革命性突破,开发者工作方式的彻底重塑
  • C#领域驱动设计在 ERP 项目中的应用设计
  • easyui gridview中toolbar中按钮的显示与否
  • 2025 年德州混凝土修补,山东专业混凝土修补,山东建筑清水混凝土修补,山东装饰清水混凝土修补公司最新推荐,聚焦资质、案例、售后的五家企业深度解读
  • ansible init 初始化实例
  • 洛谷题单指南-进阶数论-CF687B Remainders Game
  • 2025年10月烤火炉推荐:知名榜单全维度选择方案
  • 2025年10月烤火炉推荐:对比排行榜助你轻松选
  • 2025年无糖无汽苏打水厂家权威推荐榜单:无汽苏打水/pH值高的苏打水/白桃苏打水源头厂家精选
  • 2025年塑料合金板材厂家权威推荐榜单:ABS吸塑板/真空吸塑板/ABS吸塑板源头厂家精选
  • time-ode项目结构
  • 完整教程:macOS/Linux ClaudeCode 安装指南及 Claude Sonnet 4.5 介绍