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

菏泽网站建设制作如何去做网络营销

菏泽网站建设制作,如何去做网络营销,比较好的网站空间,可以做网络攻防的实验的网站知识点回顾: 三种不同的模型可视化方法:推荐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/a/456286.html

相关文章:

  • 浏览器网站免费进入用rp做网站不用写前段代码
  • 做网站一般的尺寸做的好的农产品网站有哪些
  • 公司做的网站过期了wordpress置顶
  • 做网站有er图最近最新免费手机中文
  • 在线考试网站开发wordpress单页网站在本页跳转
  • 装修公司做宣传在哪个网站wordpress去除手机版
  • 做雨棚的网站做 英语试题的网站
  • 江苏做帖子网站电子商务网站建设薛万欣
  • 网站内页不收录WordPress wp-cache
  • 建设部网站官工程质量手册章丘营销型网站设计公司
  • 泰国公共建设网站大学生创新创业大赛英文
  • 网站建设公司合伙人淮南移动网站建设
  • 沈阳制作公司网站门户网站通俗理解
  • 局域网网站制作wordpress 小插件
  • 网站后台忘了陕西西安网络公司
  • 四川住房和城乡建设局网站外贸网站平台都有哪些平台
  • 龙华做网站 熊掌号网站上的站点地图链接是这么做的
  • 网站按条件显示广告图片广州中山手工外发加工网
  • 怎么给自己公司做网站网站分析与优化
  • 烟台网站制作工具wordpress 重复内容
  • 莱西网站建设产品图案设计网站
  • 英语网站 php源码工程建设标准网站
  • 做网站旅游销售死链对网站的影响
  • 黑龙江做网站公司编写网站用什么语言
  • 如何上传到自己的网站网套加工机器设备
  • 赣州网站开发我做的网站怎样推广的
  • 个人网站备案填写wordpress图片属性添加
  • 免费建站微信18款禁用网站app直播
  • 东莞市企业网站制作平台苏州网站开发建设公司
  • 外贸网站 wordpress西安建网站