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

单页网站制作全套教程软文营销经典案例

单页网站制作全套教程,软文营销经典案例,新手做网站视频,佛山做网站3lue知识点回顾: 三种不同的模型可视化方法:推荐torchinfo打印summary权重分布可视化进度条功能:手动和自动写法,让打印结果更加美观推理的写法:评估模式 作业:调整模型定义时的超参数,对比下效果。…
知识点回顾:
  1. 三种不同的模型可视化方法:推荐torchinfo打印summary+权重分布可视化
  2. 进度条功能:手动和自动写法,让打印结果更加美观
  3. 推理的写法:评估模式

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

调整参数,构建三层神经网络,修改学习率为0.001

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
from tqdm import tqdm
import time
from torchsummary import summary
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, 16)  # 增加了神经元数量# 第二层:第一个隐藏层到第二个隐藏层self.fc2 = nn.Linear(16, 8)  # 神经元数量递减(金字塔结构)# 激活函数self.relu = nn.ReLU()# 第三层:第二个隐藏层到输出层self.fc3 = nn.Linear(8, 3)   # 输出3个类别def forward(self, x):# 前向传播路径out = self.fc1(x)out = self.relu(out)out = self.fc2(out)out = self.relu(out)out = self.fc3(out)return out# 实例化模型并移至GPU
model = MLP().to(device)# 打印模型摘要,可以放置在模型定义后面
summary(model, input_size=(4,))# 分类问题使用交叉熵损失函数
criterion = nn.CrossEntropyLoss()# 使用随机梯度下降优化器
optimizer = optim.SGD(model.parameters(), lr=0.001)# 训练模型
num_epochs = 20000  # 训练的轮数# 用于存储每100个epoch的损失值和对应的epoch数
losses = []
epochs = []start_time = time.time()  # 记录开始时间# 创建tqdm进度条
with tqdm(total=num_epochs, desc="训练进度", unit="epoch") as pbar:# 训练模型for epoch in range(num_epochs):# 前向传播outputs = model(X_train)  # 隐式调用forward函数loss = criterion(outputs, y_train)# 反向传播和优化optimizer.zero_grad()loss.backward()optimizer.step()# 记录损失值并更新进度条if (epoch + 1) % 200 == 0:losses.append(loss.item())epochs.append(epoch + 1)# 更新进度条的描述信息pbar.set_postfix({'Loss': f'{loss.item():.4f}'})# 每1000个epoch更新一次进度条if (epoch + 1) % 1000 == 0:# print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')pbar.update(1000)  # 更新进度条# 确保进度条达到100%if pbar.n < num_epochs:pbar.update(num_epochs - pbar.n)  # 计算剩余的进度并更新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()# 评估模型
model.eval()
with torch.no_grad():outputs=model(X_test)_,predicted=torch.max(outputs,1) #1 表示在第 1 个维度(通常是行方向)上寻找最大值。#这个函数返回2个值,分别是最大值和对应索引,参数1是在第1维度(行)上找最大值,_ 是Python的约定,表示忽略这个返回值,所以这个写法是找到每一行最大值的下标# 此时outputs是一个tensor,p每一行是一个样本,每一行有3个值,分别是属于3个类别的概率,取最大值的下标就是预测的类别# predicted == y_test判断预测值和真实值是否相等,返回一个tensor,1表示相等,0表示不等,然后求和,再除以y_test.size(0)得到准确率# 因为这个时候数据是tensor,所以需要用item()方法将tensor转化为Python的标量# 之所以不用sklearn的accuracy_score函数,是因为这个函数是在CPU上运行的,需要将数据转移到CPU上,这样会慢一些# size(0)获取第0维的长度,即样本数量correct=(predicted==y_test).sum().item() #计算预测正确的样本数accuracy=correct/y_test.size(0) #计算准确率print(f'测试集准确率:{accuracy*100:.2f}%')

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

相关文章:

  • asp单页网站源码渠道推广平台
  • 网站做百度推广多少钱百度竞价app
  • 男女做微电影网站sem竞价托管代运营
  • 怎么网上接网站开发单自己做b站2020推广网站
  • 南宁cms建站广东清远今天疫情实时动态防控
  • 微信导航网站如何建设社群运营的经典案例
  • 独立网站b2c2022当下社会热点话题
  • 网站运营频道内容建设百度小说搜索热度排行榜
  • 百货批发网站建设今日国内新闻头条15条
  • 很小众却很惊艳的公众号名字重庆seo优化效果好
  • 我的网站百度怎么搜索不到了自己怎么免费做百度推广
  • 做电脑网站起什么名字推广目标怎么写
  • 独立网站做外贸今天的最新消息新闻
  • 广东省 政府网站 建设互联网广告营销
  • 网站建设有什么系统什么是seo是什么意思
  • 怎么做自己的个人网站湖南长沙关键词推广电话
  • 医院诊所响应式网站模板关键字是什么意思
  • 申请个人主页网站地址网络搜索引擎有哪些
  • wordpress指定页面添加css专业seo网站
  • 域名买了怎么做网站百度6大核心部门
  • 手机网站优化排名培训机构有哪些
  • 网站开发培训实训色盲测试图动物
  • wordpress 使用smtp热狗网站排名优化外包
  • 微信做任务赚钱的网站惠州seo按天付费
  • 建设网站赚钱的方法营销网站的建造步骤
  • 有哪些网站做任务有佣金百度网讯科技有限公司官网
  • 如何制作响应式网站账户竞价托管费用
  • 深圳市网站维护德芙巧克力的软文500字
  • 做网站需要学习什么知识注册google账号
  • 政府网站建设运维情况自查报告推广的软件有哪些