news 2026/5/1 6:09:07

DAY38模型可视化与推理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DAY38模型可视化与推理
import torch import torch.nn as nn import torch.optim as optim from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler import time import matplotlib.pyplot as plt # 设置GPU设备 device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") print(f"使用设备: {device}") # 加载鸢尾花数据集 iris = load_iris() X = iris.data # 特征数据 y = iris.target # 标签数据 # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 归一化数据 scaler = MinMaxScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) # 将数据转换为PyTorch张量并移至GPU X_train = torch.FloatTensor(X_train).to(device) y_train = torch.LongTensor(y_train).to(device) X_test = torch.FloatTensor(X_test).to(device) y_test = torch.LongTensor(y_test).to(device) class MLP(nn.Module): def __init__(self): super(MLP, self).__init__() self.fc1 = nn.Linear(4, 10) # 输入层到隐藏层 self.relu = nn.ReLU() self.fc2 = nn.Linear(10, 3) # 隐藏层到输出层 def forward(self, x): out = self.fc1(x) out = self.relu(out) out = self.fc2(out) return out # 实例化模型并移至GPU model = MLP().to(device) # 分类问题使用交叉熵损失函数 criterion = nn.CrossEntropyLoss() # 使用随机梯度下降优化器 optimizer = optim.SGD(model.parameters(), lr=0.01) # 训练模型 num_epochs = 20000 # 训练的轮数 # 用于存储每100个epoch的损失值和对应的epoch数 losses = [] start_time = time.time() # 记录开始时间 for epoch in range(num_epochs): # 前向传播 outputs = model(X_train) # 隐式调用forward函数 loss = criterion(outputs, y_train) # 反向传播和优化 optimizer.zero_grad() #梯度清零,因为PyTorch会累积梯度,所以每次迭代需要清零,梯度累计是那种小的bitchsize模拟大的bitchsize loss.backward() # 反向传播计算梯度 optimizer.step() # 更新参数 # 记录损失值 if (epoch + 1) % 200 == 0: losses.append(loss.item()) # item()方法返回一个Python数值,loss是一个标量张量 print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}') # 打印训练信息 if (epoch + 1) % 100 == 0: # range是从0开始,所以epoch+1是从当前epoch开始,每100个epoch打印一次 print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}') time_all = time.time() - start_time # 计算训练时间 print(f'Training time: {time_all:.2f} seconds') # 可视化损失曲线 plt.plot(range(len(losses)), losses) plt.xlabel('Epoch') plt.ylabel('Loss') plt.title('Training Loss over Epochs') plt.show()

@浙大疏锦行

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 2:01:09

LobeChat能否实现会议纪要自动生成?语音转录整合路径

LobeChat 与语音转录融合:构建会议纪要自动生成系统的实践路径 在远程办公常态化、跨时区协作日益频繁的今天,一场两小时的会议结束后,谁来整理那长达万字的录音?人工记录不仅耗时费力,还容易遗漏关键决策和待办事项。…

作者头像 李华
网站建设 2026/4/19 20:38:25

如何终极解决Windows依赖管理难题?完整系统依赖修复方案

如何终极解决Windows依赖管理难题?完整系统依赖修复方案 【免费下载链接】vcredist Lifecycle management for the Microsoft Visual C Redistributables 项目地址: https://gitcode.com/gh_mirrors/vcr/vcredist 你是否曾经遇到过这样的情况:安装…

作者头像 李华
网站建设 2026/4/30 1:11:31

LobeChat客服话术标准化生成系统

LobeChat客服话术标准化生成系统 在企业客户服务日益智能化的今天,一个常见的困境浮出水面:尽管AI对话系统已经能够流畅应答,但不同客户收到的回复却风格不一、口径混乱。某电商平台曾因客服机器人对“退货流程”的描述存在多个版本&#xff…

作者头像 李华
网站建设 2026/4/30 3:30:07

静态路由基础实验:3 台路由器 + 双 PC 的互通拓扑

今天分享一个经典的静态路由实验拓扑,适合刚入门网络的朋友练手 —— 用 3 台华为 AR 路由器(AR1/AR2/AR3)2 台 PC,实现不同网段的跨设备互通。一、拓扑信息速览先看拓扑里的关键 IP(接口 网段)&#xff1…

作者头像 李华
网站建设 2026/4/29 6:42:15

ceph中librbd模式下的qemu+librbd

https://docs.ceph.com/en/latest/rbd/qemu-rbd/ 下面我把我们前面讨论的关键点串起来,给你一份“从概念到可执行命令”的完整说明,帮助你在已有 rbdpool/image 的前提下,正确使用 qemu librbd 来启动虚拟机、进入虚拟机、验证磁盘、以及测…

作者头像 李华