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

wordpress 顶部工具条seo诊断报告

wordpress 顶部工具条,seo诊断报告,css怎么做网站菜单,东莞营销型网站哪家好模型可视化与推理 知识点回顾: 1. 三种不同的模型可视化方法:推荐torchinfo打印summary权重分布可视化 2. 进度条功能:手动和自动写法,让打印结果更加美观 3. 推理的写法:评估模式 作业:调整模型定…
模型可视化与推理

知识点回顾:

1.  三种不同的模型可视化方法:推荐torchinfo打印summary+权重分布可视化

2.  进度条功能:手动和自动写法,让打印结果更加美观

3.  推理的写法:评估模式

作业:调整模型定义时的超参数,对比下效果。

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
from tqdm import tqdm  # 添加缺失的导入# 设置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
original_model = MLP().to(device)
# 分类问题使用交叉熵损失函数
original_criterion = nn.CrossEntropyLoss()
# 使用随机梯度下降优化器
original_optimizer = optim.SGD(original_model.parameters(), lr=0.01)# 训练原始模型
num_epochs = 20000
original_losses = []# 修正进度条更新逻辑
with tqdm(total=num_epochs, desc="原始模型训练进度", unit="epoch") as pbar:for epoch in range(num_epochs):# 前向传播outputs = original_model(X_train)  # 隐式调用forward函数loss = original_criterion(outputs, y_train)# 反向传播和优化original_optimizer.zero_grad()loss.backward()original_optimizer.step()# 记录损失值if (epoch + 1) % 200 == 0:original_losses.append(loss.item())# 每次迭代更新进度条pbar.update(1)pbar.set_postfix({'Loss': f'{loss.item():.4f}'})# 评估原始模型
original_model.eval()
with torch.no_grad():outputs = original_model(X_test)_, predicted = torch.max(outputs, 1)correct = (predicted == y_test).sum().item()original_accuracy = correct / y_test.size(0)print(f'原始模型测试集准确率: {original_accuracy * 100:.2f}%')# 调整超参数后的模型
class ModifiedMLP(nn.Module):def __init__(self):super(ModifiedMLP, self).__init__()self.fc1 = nn.Linear(4, 20)  # 输入层到隐藏层,神经元数量调整为20self.relu = nn.ReLU()self.fc2 = nn.Linear(20, 3)  # 隐藏层到输出层def forward(self, x):out = self.fc1(x)out = self.relu(out)out = self.fc2(out)return out# 实例化调整后的模型并移至GPU
modified_model = ModifiedMLP().to(device)
# 分类问题使用交叉熵损失函数
modified_criterion = nn.CrossEntropyLoss()
# 使用随机梯度下降优化器,学习率调整为0.001
modified_optimizer = optim.SGD(modified_model.parameters(), lr=0.001)# 训练调整后的模型
num_epochs = 30000
modified_losses = []# 修正进度条更新逻辑
with tqdm(total=num_epochs, desc="调整后模型训练进度", unit="epoch") as pbar:for epoch in range(num_epochs):# 前向传播outputs = modified_model(X_train)  # 隐式调用forward函数loss = modified_criterion(outputs, y_train)# 反向传播和优化modified_optimizer.zero_grad()loss.backward()modified_optimizer.step()# 记录损失值if (epoch + 1) % 300 == 0:  # 调整记录频率,使两个模型记录相同数量的点modified_losses.append(loss.item())# 每次迭代更新进度条pbar.update(1)pbar.set_postfix({'Loss': f'{loss.item():.4f}'})# 评估调整后的模型
modified_model.eval()
with torch.no_grad():outputs = modified_model(X_test)_, predicted = torch.max(outputs, 1)correct = (predicted == y_test).sum().item()modified_accuracy = correct / y_test.size(0)print(f'调整后模型测试集准确率: {modified_accuracy * 100:.2f}%')# 对比两个模型的准确率
print(f'准确率提升: {(modified_accuracy - original_accuracy) * 100:.2f}%')# 保存模型(可选)
torch.save(original_model.state_dict(), 'original_model.pth')
torch.save(modified_model.state_dict(), 'modified_model.pth')# 可视化两个模型的损失曲线
plt.figure(figsize=(12, 6))# 计算实际的epoch数
original_epochs = [i*200 for i in range(1, len(original_losses)+1)]
modified_epochs = [i*300 for i in range(1, len(modified_losses)+1)]plt.plot(original_epochs, original_losses, label='Original Model (10 hidden units, lr=0.01)')
plt.plot(modified_epochs, modified_losses, label='Modified Model (20 hidden units, lr=0.001)')plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.title('Training Loss Comparison')
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.show()

输出结果:

使用设备: cpu
原始模型训练进度: 100%|█████████████████████████████████████████████████████████████████████████| 20000/20000 [00:23<00:00, 863.39epoch/s, Loss=0.0623]
原始模型测试集准确率: 96.67%
调整后模型训练进度: 100%|███████████████████████████████████████████████████████████████████████| 30000/30000 [00:34<00:00, 862.20epoch/s, Loss=0.2272]
调整后模型测试集准确率: 100.00%
准确率提升: 3.33%

@浙大疏锦行

http://www.dtcms.com/wzjs/509061.html

相关文章:

  • 网站如何做api接口龙岗网站推广
  • 建设网站的价值百度新闻网
  • VPS如何做网站服务器seo专家是什么意思
  • 网站的后台怎么做国内网站排名
  • 服装企业网站建设博客网站seo
  • 做网站有生意吗抖音搜索排名
  • 网站建设开拓该行业的难点疑成都seo网站qq
  • 海口制作网站软件18款禁用软件黄app免费
  • 怎样做网站的链接html网页制作模板代码
  • 做货运网站找哪家好长春网站建设技术托管
  • 宁波做网站的公司营销怎么做
  • 国务院网站官网建设部搜索引擎营销的作用
  • 口碑好的常州做网站友情链接软件
  • 哪些网站是ruby做的海外推广营销 平台
  • 精美图片做网站上哪儿去找图上海关键词seo
  • 沈阳看男科哪里医院男科好网站优化 秦皇岛
  • wordpress站点取名网页制作软件推荐
  • 优质聊城做网站费用东莞网站制作的公司
  • 做网站定金是多少微信营销工具
  • 中国做外贸网站有哪些问题南京百度搜索优化
  • 如何建设网站功能设计佛山旺道seo优化
  • 自己有网站 做app吗seo建站网络公司
  • 简约网站首页网络营销外包公司
  • 500云网站网络营销策划书8000字
  • 嘉兴网站制作优化宁波seo关键词优化制作
  • 用php做电商网站高清视频线转换线
  • 做网站只开发手机端可不可以任务放单平台
  • wordpress 语法高亮南宁seo教程
  • 网页链接怎么打印出来杭州seo网站推广
  • 网站开发的抓包企业qq多少钱一年