news 2026/7/3 10:34:28

Day 37 MLP神经网络的训练

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Day 37 MLP神经网络的训练

@浙大疏锦行

1.cuda 的检查

import torch torch.cuda if torch.cuda.is_available(): print("CUDA可用!") device_count = torch.cuda.device_count() print(f"可用的CUDA设备数量:{device_count}") current_device = torch.cuda.current_device() print(f"当前使用的CUDA设备索引:{current_device}") device_name = torch.cuda.get_device_name(current_device) print(f"当前CUDA设备的名称:{device_name}") cuda_version = torch.version.cuda print(f"CUDA版本:{cuda_version}") else: print("CUDA不可用。")

2.简单神经网络的流程

a.数据预处理

from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split import numpy as np 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) print(X_train.shape) print(y_train.shape) print(X_test.shape) print(y_test.shape) from sklearn.preprocessiong import MinMaxScaler scaler = MinMaxScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) X_train = torch.FloatTensor(X_train) y_train = torch.LongTensor(y_train) X_test = torch.FloatTensor(X_test) y_test = torch.LongTensor(y_test)

b.模型的定义

i.继承nn.Module类

ii.定义每一个层

iii.定义前向传播流程

import torch import torch.nn as nn import torch.optim as optim 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 model = MLP()

c.定义损失函数和优化器

criterion = nn.CrossEntropyLoss() optimizer = optim.SGD(model.parameters(), 1r=0.01)

d.定义训练流程

num_epochs = 20000 losses = [] for epoch in range(num_epochs): outputs = model.forward(X_train) loss = criterison(outputs,y_train) optimizer.zero_grad() loss.backward() optimizer.step() losses.append(loss.item()) if(epoch + 1) % 100 == 0: print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f})

e.可视化loss过程

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

智能零碳管理系统功能与实现

智能零碳管理系统旨在帮助企业有效管理和监控其碳排放,同时为公众用户提供有用的碳排放信息和咨询服务。本文将详细介绍该系统的功能模块与Django模型代码的实现。一、系统角色与权限总结 1. 管理员 审核企业碳排放数据(可设置不合格提醒) 发…

作者头像 李华
网站建设 2026/7/2 5:29:18

你是否正在经历这些知识管理的 “隐形内耗”?​

技术文档散落在语雀、GitHub、本地硬盘,新员工入职像 “寻宝”;写一份部署手册要熬 4 小时,修改迭代还要跨平台同步;搜索 “token 过期解决方案”,返回几十篇无关文档,翻半天找不到重点;敏感数据…

作者头像 李华
网站建设 2026/6/28 21:25:03

快速排序(Quick Sort)的“死穴”

快速排序(Quick Sort)的“死穴”,也就是它的最坏情况。简单来说,它的意思是:如果你运气不好,选的基准值(Pivot)太极端,快速排序就会变得非常慢,慢得像冒泡排序…

作者头像 李华
网站建设 2026/6/28 21:15:35

25、技术探索:Google App Engine、Zenoss与Python包管理

技术探索:Google App Engine、Zenoss与Python包管理 一、Google App Engine数据查询与路由 在Google App Engine开发中,数据查询与路由是重要的环节。以下是一段用于从数据存储中获取最后10条记录并进行处理的代码: collection = [] #grab last 10 records from datasto…

作者头像 李华
网站建设 2026/7/1 22:52:25

每日一练:流星雨

题目描述贝西听说一场非凡的流星雨即将来临;报告称这些流星将撞击地球并摧毁它们所碰到的任何东西。为了安全,她发誓要找到一个安全的位置(一个从未被流星摧毁的地方)。她目前在坐标平面的原点放牧,想要移动到一个新的…

作者头像 李华
网站建设 2026/6/26 19:16:35

21、SNMP网络管理与数据中心发现实战

SNMP网络管理与数据中心发现实战 1. 配置Net - SNMP 当你要在想要监控的客户端上安装Net - SNMP时,应使用主机资源MIB(Management Information Base,管理信息库)来编译Net - SNMP。具体操作步骤如下: ./configure -with-mib-modules=host运行 configure 时,它会尝试…

作者头像 李华