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

打卡第34天:MLP神经网络训练

jiji1.PyTorch和cuda的安装
2.查看显卡信息的命令行命令(cmd中使用)
3.cuda的检查
4.简单神经网络的流程
a.数据预处理(归一化、转换成张量)
b.模型的定义
i.继承nn.Module类
ii.定义每一个层
iii.定义前向传播流程
c.定义损失函数和优化器
d.定义训练流程
e.可视化loss过程

今日作业:能够手敲代码

首先是数据准备过程:加载数据集并划分,打印尺寸,归一化处理,将数据转化为张量

from sklearn.datasets import load_iris
from sklearn.model_selection import train_split_test
import numpy
iris = load_iris
X = iris.data
y = iris.target
X_train, y_train, X_test, y_test = train_split_test(X, y, test_size = 0.8, random_state =42)
print(X_test.shap)
print(y_test.shap)
print(X_train.shap)
print(y_train.shap)
from sklearn.preprocesing import MinMaxScaler
scaler = MinMaxScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)X_train = torch.Float.Tensor(X_train)
y_train = torch.Long.Tensor(y_train)
X_test = torch.Float.Tensor(X_test)
y_test = torch.Long.Tensor(y_test)

第二步进行模型架构:模型传递逻辑以及实例化

import torch
import torch.nn as nn
import torch.optim as optim
class MLP(nn.model, self):def __init__(self):super(MLP, self)__init__():self.fc1 = nn.Linear(4, 10)self.relu = RELU()self.fc2 = Linear(10, 3)def forward(self, x)out = self.fc1(x)out = self.relu(out)out = self.fc2(out)return out
model = MLP()

第三步进行模型训练:规定训练轮数,记录损失值,向前传播,反向传播优化并记录损失值 ,打印结果

criterion = nn.CrossEntropyloss()
optimizer = optim.SGD(model.parameters(),lr = 0.01)
num_epoch = 20000
loss =[]
for num_epoch in range(num_epoch):outputs = model forward(X_train)loss = criterion(outputs, y_train)optimizer.zero_grad()loss.backward()optimizer.step()loss.append(loss.item())if (epoch + 1) % 100 ==0:print(f'Epoch[{epoch +1} / {num_epoch}], Loss{loss.item():.4f}')

最后可以进行数据可视化

import matplotlib.pyplot as plt
# 可视化损失曲线
plt.plot(range(num_epochs), losses)
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.title('Training Loss over Epochs')
plt.show()

@浙大疏锦行 

 

 


文章转载自:

http://p1obesJm.yjdqL.cn
http://1WsWONv3.yjdqL.cn
http://yIYDIPcS.yjdqL.cn
http://wkmFGpTc.yjdqL.cn
http://4KHqh8gl.yjdqL.cn
http://jQXBwTTJ.yjdqL.cn
http://ZkEZbgXx.yjdqL.cn
http://blIRm9sk.yjdqL.cn
http://onZhr5qD.yjdqL.cn
http://lp63keuZ.yjdqL.cn
http://3ABAFxlf.yjdqL.cn
http://dg9VMNjK.yjdqL.cn
http://wB1HkdOy.yjdqL.cn
http://BSAIwctq.yjdqL.cn
http://qRQAEUo9.yjdqL.cn
http://lsMFMQUU.yjdqL.cn
http://ROzybX0q.yjdqL.cn
http://x6fZLDga.yjdqL.cn
http://ekdBPPtO.yjdqL.cn
http://vV6ZmQfO.yjdqL.cn
http://XpGldZHh.yjdqL.cn
http://xWIR8OhO.yjdqL.cn
http://drxunh1V.yjdqL.cn
http://YnrTzvvJ.yjdqL.cn
http://snL5hPjQ.yjdqL.cn
http://n6bugOEs.yjdqL.cn
http://QMmEoqyJ.yjdqL.cn
http://WSlJzYbe.yjdqL.cn
http://gFTzjaj6.yjdqL.cn
http://hqZsCFI1.yjdqL.cn
http://www.dtcms.com/a/227257.html

相关文章:

  • 《Effective Python》第六章 推导式和生成器——使用 yield from 组合多个生成器
  • [leetcode] 二分算法
  • 第1章:走进Golang
  • 什么是多尺度分解
  • JAVA-springboot整合Mybatis
  • NLP学习路线图(十七):主题模型(LDA)
  • 【数据库】关系数据库标准语言-SQL(金仓)下
  • 从 Windows 7 到 AnduinOS:安装、故障排除与远程控制指南
  • 打卡第43天
  • 操作系统:文件系统笔记
  • 【笔记】Windows 部署 Suna 开源项目完整流程记录
  • 探索大语言模型(LLM):参数量背后的“黄金公式”与Scaling Law的启示
  • Linux内核体系结构简析
  • 【Doris基础】Apache Doris中的Version概念解析:深入理解数据版本管理机制
  • 【001】利用github搭建静态网站_essay
  • 【MySQL】使用C语言连接数据库
  • 房屋租赁系统 Java+Vue.js+SpringBoot,包括房屋信息、看房申请、租赁合同、房屋报修、收租信息、维修数据、租客管理、公告管理模块
  • 机器学习——集成学习
  • 6.2本日总结
  • Oracle的Hint
  • 【GESP真题解析】第 6 集 GESP 三级 2023 年 9 月编程题 1:小杨的储蓄
  • ThreadLocal ,底层原理,强引用,弱引用,内存泄漏
  • 力扣HOT100之多维动态规划:64. 最小路径和
  • 普通二叉树 —— 最近公共祖先问题解析(Leetcode 236)
  • 力扣第452场周赛
  • BiliNote部署实践
  • docker使用sh脚本创建容器
  • mysql离线安装教程
  • 论文略读:LIMO: Less is More for Reasoning
  • Android Studio 之基础代码解析