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

LeNet(pytorch实现

LeNet

本文编写了一个简单易懂的LeNet网络,并在F-MNIST数据集上进行测试,允许使用GPU计算

在这里插入代码片
import torch
from torch import nn, optim 
import d2lzh_pytorch as d2ldevice = torch.device('cuda' if torch.cuda.is_available() else 'cpu')# f-mnist 数据集是28*28的
class LeNet(nn.Module):def __init__(self):super(LeNet, self).__init__()self.conv = nn.Sequential(nn.Conv2d(1, 6, 5),  # 输出通道,输出通道,核大小nn.Sigmoid(),nn.MaxPool2d(2, 2),  # 高宽减半nn.Conv2d(6, 16, 5),nn.Sigmoid(),nn.MaxPool2d(2, 2))self.fc = nn.Sequential(d2l.FlattenLayer(),nn.Linear(16*4*4, 120),nn.Sigmoid(),nn.Linear(120, 84),nn.Sigmoid(),nn.Linear(84, 10))def forward(self, img):feature = self.conv(img)output = self.fc(feature)return output
net = LeNet()# 数据集
batch_size = 256
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)# 评估测试集,支持GPU
def evaluate_acc(data_iter, net, device = None):if device is None and isinstance(net, nn.Module):device = list(net.parameters())[0].device  # 看参数的gpu还是cpuacc_sum, n = 0.0, 0with torch.no_grad():for X,y in data_iter:if isinstance(net, nn.Module):  # 这个可加可不加net.eval()  # 评估模式acc_sum += (net(X.to(device)).argmax(dim=1) == y.to(device)).float().sum().cpu().item()net.train()  # 转回训练模式n += y.shape[0]return acc_sum / ndef train(net, train_iter, test_iter, optimizer, device, epochs):net = net.to(device)loss = nn.CrossEntropyLoss()for epoch in range(epochs):train_l_sum, train_acc_sum, n = 0.0, 0.0, 0for X,y in train_iter:X = X.to(device)y = y.to(device)y_hat = net(X)l = loss(y_hat, y)optimizer.zero_grad()l.backward()optimizer.step()train_l_sum += l.cpu().item()train_acc_sum += (y_hat.argmax(dim=1) == y).sum().cpu().item()n += y.shape[0]test_acc = evaluate_acc(test_iter, net)print('epoch %d, loss %.4f, train_acc %.4f, test_acc %.4f'%(epoch + 1, train_l_sum, train_acc_sum/n, test_acc))lr, epochs = 0.001, 5
optimizer = torch.optim.Adam(net.parameters(), lr=lr)
train(net, train_iter, test_iter, optimizer, device, epochs)

相关文章:

LeNet(pytorch实现

LeNet 本文编写了一个简单易懂的LeNet网络,并在F-MNIST数据集上进行测试,允许使用GPU计算 在这里插入代码片 import torch from torch import nn, optim import d2lzh_pytorch as d2ldevice torch.device(cuda if torch.cuda.is_available() else cp…...

Selenium获取百度百科旅游景点的InfoBox消息盒

前面我讲述过如何通过BeautifulSoup获取维基百科的消息盒,同样可以通过Spider获取网站内容,最近学习了SeleniumPhantomjs后,准备利用它们获取百度百科的旅游景点消息盒(InfoBox),这也是毕业设计实体对齐和属…...

springcloud笔记 (8) -网关 Gateway

网关 出国需要过海关 网关:网络的关卡 网关的作用 1:路由转发 2:安全控制 保护每个服务,不需要将每个暴露出去 3:负载均衡 1.没有网关:客户端直接访问我们的微服务,会需要在客户端配置很多…...

【C++编程语言】STL常用算法 算术生成和集合算法

1.算术生成算法概念 算法简介&#xff1a; accumlate 计算容器元素累计总和fill 向容器中添加元素 注意&#xff1a;算术生成算法属于小型算法 使用时包含头文件为#include<numeric> 2.accumulate /*函数原型&#xff1a;int accumulate(iterator beg ,iterator end…...

解放双手:VMLogin自动化工具的高效便捷

在现代工作环境中&#xff0c;时间和效率是我们追求的关键。幸运的是&#xff0c;随着技术的发展&#xff0c;自动化工具为我们提供了解放双手的机会。其中&#xff0c;防关联浏览器的自动化就是一种强大的工具&#xff0c;能够简化我们的工作流程并提升效率。本文将探讨浏览器…...

深度解析网络代理技术及其在网络安全和爬虫应用中的关键作用

在当今数字化时代&#xff0c;网络代理技术在维护网络安全、保护隐私以及实现高效数据获取方面发挥着不可或缺的作用。本文将全面解析Socks5代理、IP代理等关键技术&#xff0c;并探讨其在网络安全和爬虫开发中的重要作用。 1. Socks5代理与SK5代理&#xff1a;多功能代理协议…...

寻找二叉树的最低公共祖先节点

两个节点沿二叉树向上找&#xff0c;找到的第一个公共的节点 例&#xff1a;D和F之间的最低公共节点&#xff1a;B D → B&#xff1b; F → E → B&#xff1b; E和G最低公共节点&#xff1a;A E → B → A&#xff1b; G → C → A&#xff1b; B和F最低公共节点&#xff…...

python网络爬虫(二)基本库的使用urllib/requests

使用urllib 了解一下 urllib 库&#xff0c;它是 Python 内置的 HTTP 请求库&#xff0c;也就是说不需要额外安装即可使用。它包含如下 4 个模块。 request&#xff1a;它是最基本的 HTTP 请求模块&#xff0c;可以用来模拟发送请求。就像在浏览器里输入网址然后回车一样&…...

Kafka快速入门(最新版3.6.0)

文章目录 一、初识MQ1.1 什么是MQ1.2 同步和异步通讯1.1.1 同步通讯1.1.2 异步通讯 1.3 技术对比1.4 MQ的两种模式 二、初识Kafka2.1 Kafka的使用场景2.2 Kafka基本概念2.3 Topic与Partition 三、Kafka基本使用3.1 部署前的准备3.2 启动kafka服务器3.3 Kafka核心概念之Topic3.4…...

CTF/AWD竞赛标准参考书+实战指南:《AWD特训营》

作者简介&#xff1a; 懒大王敲代码&#xff0c;正在学习嵌入式方向有关课程stm32&#xff0c;网络编程&#xff0c;数据结构C/C等 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f496; 《AWD特训营》 前言 内容简介 读者对象 本书目录 前言…...

从零开始 Spring Cloud 15:多级缓存

从零开始 Spring Cloud 15&#xff1a;多级缓存 多级缓存架构 传统的缓存使用 Redis&#xff0c;大致架构如下&#xff1a; 这个架构存在一些问题&#xff1a; 请求要经过Tomcat处理&#xff0c;Tomcat的性能成为整个系统的瓶颈 Redis缓存失效时&#xff0c;会对数据库产生冲…...

Adobe产品2024

一、软件下载&#xff1a; 二、软件介绍&#xff1a; Adobe公司旗下的产品在影视后期、平面设计等领域有着无可取代的地位。在创意和设计领域中&#xff0c;产品有多达 21 个&#xff0c;包括 Photoshop、Illustrator、InDesign、Premiere Pro、After Effects 和 Acrobat Pro …...

【MySQL】8.0新特性、窗口函数和公用表表达式

文章目录 1. 新增特性2. 移除旧特性2.1 优点2.2 缺点 3. 新特性1&#xff1a;窗口函数3.1 使用窗口函数前后对比3.2 窗口函数分类3.3 语法结构3.4 分类讲解3.4.1 序号函数3.4.1.1 ROW_NUMBER()函数3.4.1.2 RANK()函数3.4.1.3 DENSE_RANK()函数 3.4.2 分布函数3.4.2.1 PERCENT_R…...

华为云云耀云服务器L实例评测|使用clickhouse-benchmark工具对ClickHouse的性能测试

目录 引言 1 ClickHouse简介 2 利用docker安装ClickHouse 2.1 安装Docker 2.2 下载ClickHouse Docker镜像 2.3 创建ClickHouse容器 2.4 访问ClickHouse 3 创建测试表 4 运行 clickhouse-benchmark 5 分析结果 结语 引言 利用华为云的云耀云服务器L实例&#xff0c…...

枚举最大值+ds:1887D

https://codeforces.com/problemset/problem/1887/D 左边区间最大值小于右边区间最小值 肯定要离线 感觉分治&#xff1f; 枚举左边区间最大值 求出其影响范围&#xff0c;推出左端点可取范围 然后可取右端点就是一段连续大于此值得区间 也就是左端点在一段区间时右端点可…...

模拟最终成绩计算过程

首先输入大于2的整数作为评委人数,然后依次输入每个评委的打分,要求每个分数介于0~100.输入完所有评委打分之后,去掉一个最高分,去掉一个最低分,剩余分数的平均分即为该选手的最终得分 (1) while True:try:n int(input(请输入评委人数:))assert n > 2# 跳出循环breakexce…...

Android10 修改开发者选项中动画缩放默认值

Android 10 修改开发者选项中动画因子默认值 开发者选项中有三个动画因子 “Window animation scale” :窗口动画缩放“Transition animation scale” :过渡动画缩放“Animator duration scale” :动画程序时长缩放 修改默然值 默认3个因子都是1.0&#xff0c;现在修改为默认0.…...

【2023年11月第四版教材】软考高项极限冲刺篇笔记(3)

8 成本管理 成本类型:可变成本、固定成本、直接成本、间接成本、机会成本、沉没成本 应急储备:成本基准内 管理成本:成本基准外 进度偏差:SV,SPI 成本管理主要是规划和控制 成本估算 类比估算 参数估算 自上而下估算 三点估算 备选方案分析 储备分析 质量成本 总资…...

c语言进阶部分详解(详细解析自定义类型——结构体,内存对齐,位段)

上篇文章介绍了一些常用的字符串函数&#xff0c;大家可以去我的主页进行浏览。 各种源码大家可以去我的github主页进行查找&#xff1a;Nerosts/just-a-try: 学习c语言的过程、真 (github.com) 今天要介绍的是&#xff1a;结构体的相关内容 目录 一.结构体类型的声明 1.…...

Mysql第三篇---响应太慢?数据库卡顿?如何优化?

Mysql第三篇—响应太慢&#xff1f;数据库卡顿&#xff1f;如何优化&#xff1f; 统计SQL的查询成本&#xff1a;last_query_cost 一条SQL查询语句在执行前需要确定查询执行计划&#xff0c;如果存在多种执行计划的话&#xff0c;MySQL会计算每个执行计划所需要的成本&#x…...

chandra OCR日志分析:错误模式识别与改进

Chandra OCR日志分析&#xff1a;错误模式识别与改进 如果你正在用Chandra OCR处理文档&#xff0c;可能会遇到一些“小脾气”——比如识别结果里表格乱了、公式错了&#xff0c;或者干脆漏掉了一段文字。别担心&#xff0c;这些问题不是你的错&#xff0c;而是模型在特定场景…...

智平方、云深处、乐聚扎堆冲刺IPO——资本化元年开启,百亿估值背后专利暗战升级

智平方、云深处、乐聚扎堆冲刺IPO——资本化元年开启&#xff0c;百亿估值背后专利暗战升级成都余行10000项创新清单&#xff0c;助拟上市企业构建“专利护城河”&#xff0c;赢得资本市场信任2026年&#xff0c;人形机器人产业迎来“资本化元年”。据IT桔子统计&#xff0c;截…...

零基础玩转LiuJuan20260223Zimage:手把手教你用Gradio生成图片

零基础玩转LiuJuan20260223Zimage&#xff1a;手把手教你用Gradio生成图片 1. 认识LiuJuan20260223Zimage 1.1 什么是LiuJuan20260223Zimage LiuJuan20260223Zimage是一个基于Z-Image LoRA微调的文生图模型服务&#xff0c;通过Xinference部署并提供了Gradio交互界面。简单来…...

AudioSeal惊艳效果展示:10米距离录音、电话通话音质下仍可检测水印

AudioSeal惊艳效果展示&#xff1a;10米距离录音、电话通话音质下仍可检测水印 1. AudioSeal音频水印系统概述 AudioSeal是Meta开源的语音水印技术&#xff0c;专为AI生成音频的检测和溯源而设计。这个系统能在各种极端条件下保持水印的可检测性&#xff0c;即使在远距离录音…...

新手必看!AudioSeal蓝图实验室:一键为音频加‘隐形水印’实战教程

新手必看&#xff01;AudioSeal蓝图实验室&#xff1a;一键为音频加隐形水印实战教程 1. 引言&#xff1a;音频水印技术入门 音频水印技术就像给声音文件打上"数字指纹"&#xff0c;在不影响听感的前提下嵌入特定信息。想象一下&#xff0c;你可以在音乐文件中隐藏…...

阿里通义Z-Image-GGUF体验:中英文提示词生成精美图片实测

阿里通义Z-Image-GGUF体验&#xff1a;中英文提示词生成精美图片实测 1. 模型概述与特点 1.1 什么是Z-Image-GGUF Z-Image-GGUF是阿里巴巴通义实验室开源的一款文生图AI模型&#xff0c;基于GGUF量化技术优化&#xff0c;能够在较低显存环境下实现高质量的图像生成。该模型支…...

ISE仿真流程详解:从Verilog代码到Isim仿真的完整指南

1. ISE仿真流程概述 第一次接触FPGA开发的朋友们&#xff0c;常常会被复杂的工具链和仿真流程搞得晕头转向。今天我就以最常用的ISE设计套件为例&#xff0c;手把手带大家走完从Verilog代码编写到Isim仿真的完整流程。这个教程特别适合刚入门FPGA的开发者&#xff0c;我会尽量避…...

Windows 10/11 免费获取 macOS 风格鼠标指针:完整配置指南

Windows 10/11 免费获取 macOS 风格鼠标指针&#xff1a;完整配置指南 【免费下载链接】macOS-cursors-for-Windows Tested in Windows 10 & 11, 4K (125%, 150%, 200%). With 2 versions, 2 types and 3 different sizes! 项目地址: https://gitcode.com/gh_mirrors/ma/…...

高性能客服系统技术内幕:通过 SpinWait 自旋等待结构体提升高频消息分发性能挥

1. 智能软件工程的范式转移&#xff1a;从库集成到原生框架演进 在生成式人工智能&#xff08;Generative AI&#xff09;从单纯的文本生成向具备自主规划与执行能力的“代理化&#xff08;Agentic&#xff09;”系统跨越的过程中&#xff0c;.NET 生态系统正在经历一场自该平台…...

三步免费检测微信单向好友:WechatRealFriends终极工具使用指南

三步免费检测微信单向好友&#xff1a;WechatRealFriends终极工具使用指南 【免费下载链接】WechatRealFriends 微信好友关系一键检测&#xff0c;基于微信ipad协议&#xff0c;看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFri…...