动手学深度学习(Pytorch版)代码实践 -卷积神经网络-24深度卷积神经网络AlexNet

news2025/2/22 20:38:43

24深度卷积神经网络AlexNet

在这里插入图片描述

import torch
from torch import nn
import liliPytorch as lp
import liliPytorch as lp
import matplotlib.pyplot as plt

dropout1 = 0.5
#Alexnet架构
net = nn.Sequential(
    nn.Conv2d(1, 96, kernel_size=11, stride=4, padding=1),
    nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),

    nn.Conv2d(96, 256, kernel_size=5, padding=2),
    nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),

    nn.Conv2d(256, 384, kernel_size=3, padding=1),
    nn.ReLU(),
    nn.Conv2d(384, 384, kernel_size=3, padding=1),
    nn.ReLU(),
    nn.Conv2d(384, 256, kernel_size=3, padding=1),
    nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),
    
    nn.Flatten(),
    nn.Linear(6400, 4096),
    nn.ReLU(),
    nn.Dropout(dropout1),
    nn.Linear(4096, 4096),
    nn.ReLU(),
    nn.Dropout(dropout1),
    nn.Linear(4096,10)
)

#魔改一下
lilinet = nn.Sequential(
    nn.Conv2d(1, 96, kernel_size=11, stride=4, padding=1),
    nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),

    nn.Conv2d(96, 256, kernel_size=5, padding=2),
    nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),
    nn.MaxPool2d(kernel_size=3, stride=2),

    nn.Flatten(),
    nn.Linear(6400, 4096),
    nn.ReLU(),
    nn.Dropout(dropout1),
    nn.Linear(4096, 4096),
    nn.ReLU(),
    nn.Dropout(dropout1),
    nn.Linear(4096,10)
)


# 通过在每一层打印输出的形状,我们可以检查模型
X = torch.rand(size=(1, 1, 224, 224), dtype=torch.float32) 
for layer in net:
    X = layer(X) # 将输入依次通过每一层
    print(layer.__class__.__name__, 'output shape: \t', X.shape) # 打印每一层的输出形状
"""
Conv2d output shape:     torch.Size([1, 96, 54, 54])
ReLU output shape:       torch.Size([1, 96, 54, 54])
MaxPool2d output shape:          torch.Size([1, 96, 26, 26])
Conv2d output shape:     torch.Size([1, 256, 26, 26])
ReLU output shape:       torch.Size([1, 256, 26, 26])
MaxPool2d output shape:          torch.Size([1, 256, 12, 12])
Conv2d output shape:     torch.Size([1, 384, 12, 12])
ReLU output shape:       torch.Size([1, 384, 12, 12])
Conv2d output shape:     torch.Size([1, 384, 12, 12])
ReLU output shape:       torch.Size([1, 384, 12, 12])
Conv2d output shape:     torch.Size([1, 256, 12, 12])
ReLU output shape:       torch.Size([1, 256, 12, 12])
MaxPool2d output shape:          torch.Size([1, 256, 5, 5])
Flatten output shape:    torch.Size([1, 6400])
Linear output shape:     torch.Size([1, 4096])
ReLU output shape:       torch.Size([1, 4096])
Dropout output shape:    torch.Size([1, 4096])
Linear output shape:     torch.Size([1, 4096])
ReLU output shape:       torch.Size([1, 4096])
Dropout output shape:    torch.Size([1, 4096])
Linear output shape:     torch.Size([1, 10])
"""

#读取数据集
batch_size = 64
train_iter, test_iter = lp.loda_data_fashion_mnist(batch_size,  resize=224) # 加载Fashion-MNIST数据集

#Alexnet架构
# lr, num_epochs = 0.01, 10
# batch_size = 128
# lp.train_ch6(net, train_iter, test_iter, num_epochs, lr, lp.try_gpu())
# loss 0.329, train acc 0.879, test acc 0.883

# 魔改
lr, num_epochs = 0.1, 10
lp.train_ch6(lilinet, train_iter, test_iter, num_epochs, lr, lp.try_gpu())
plt.show() # 显示训练曲线

#lr, num_epochs = 0.01, 10
#batch_size = 128
#loss 0.356, train acc 0.868, test acc 0.870

#lr, num_epochs = 0.1, 10
#batch_size = 64
#loss 0.212, train acc 0.920, test acc 0.903

运行结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1850224.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

29-Linux--守护进程

一.基础概念 1.守护进程:精灵进程,在后台为用户提高服务,是一个生存周期长,通常独立于控制终端并且周期性的执行任务火处理事件发生 2.ps axj:查看守护进程 3.进程组:多个进程的集合,由于管理…

# 消息中间件 RocketMQ 高级功能和源码分析(十一)

消息中间件 RocketMQ 高级功能和源码分析(十一) 一、消息中间件 RocketMQ 源码分析: 拉取消息长轮询机制 1、消息拉取长轮询机制分析 RocketMQ 未真正实现消息推模式,而是消费者主动向消息服务器拉取消息,RocketMQ …

LeetCode80. 删除有序数组中的重复项 II题解

LeetCode80. 删除有序数组中的重复项 II题解 题目链接: https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/ 题目描述: 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素…

基于uniapp的h5接入企业微信客服在线聊天

首先说下企业微信接入场景,支持的接入场景有以下几种,基本上涵盖了微信生态大部分场景: 接入步骤 1.创建企业微信号 按照官方操作步骤注册,需要注意的是未认证仅支持接入100人,已认证支持接入2000人. 2.创建客服账号 每个客服账号支持配置人工或是机器人或是人工机器人回复…

艾尔登法环黄金树幽影/ELDEN RING Shadow of the Erdtree(全DLC)

百度网盘 https://pan.baidu.com/s/1ulKiNQdVtV5dto-Vm7k4IA 提取码:yqrs 游戏介绍 《艾尔登法环》是一款以正统黑暗奇幻世界为舞台的动作RPG游戏。走进辽阔的场景与地下迷宫探索未知,挑战困难重重的险境,享受克服困境时的成就感吧。…

【单元测试】Spring Boot 的测试库

Spring Boot 的测试库 1.了解回归测试框架 JUnit2.了解 assertThat3.了解 Mockito4.了解 JSONPath5.测试的回滚 单元测试(unit test)是为了检验程序的正确性。一个单元可能是单个 程序、类、对象、方法 等,它是应用程序的最小可测试部件。 单…

如何修复“AI的原罪”

如何修复“AI的原罪” 上个月,《纽约时报》声称,科技巨头OpenAI和谷歌不顾服务条款和版权法的禁止,将大量YouTube视频转录成文本,并将其用作人工智能模型的额外训练数据,从而进入了版权灰色地带。《纽约时报》还援引Me…

HTML(18)——浮动

标准流 标准流也叫文档流,指的是标签在页面中默认的排布规则,例如:块元素独占一行,行内元素可以一行显示多个 浮动 作用:让块级元素水平排列 属性名:float 属性值 left:左对齐right&#…

高通安卓12-ADB操作

1.ADB安装 从网上下载一个adb工具 如: https://dl.google.com/android/repository/platform-tools_r31.0.2-windows.zip 解压出来 增加一个环境变量 查看安装情况 2.设备连接 从网上下载ADB工具 1.进入命令行,查询设备状态 adb devices 2.进入shel…

【硬件开发】共模电感

为什么电源无论直流还是交流的输入端都需要一个共模电感 图中L1就是共模电感,长下面这个样子,两侧的匝数,线径和材料都是一模一样的 共模电感的作用是为了抑制共模信号 抑制共模信号工作原理 http://【共模电感是如何抑制共模信号的】https…

视频讲解|基于模型预测算法的含储能微网双层能量管理模型【mpc】

1 主要内容 该讲解视频对应的免费程序链接为【防骗贴】基于模型预测算法的含储能微网双层能量管理模型,主要做的是一个微网双层优化调度模型,微网聚合单元包括风电、光伏、储能以及超级电容器,在微网的运行成本层面考虑了电池的退化成本&…

AT32F435 入门使用

AT32F435 入门使用 🔖这里以AT32F435RGT7作为测试对象,创建基于Keil平台编译的代码工程。📍相关篇《基于AT32_Work_Bench配置AT32工程》 ✨由于AT32F435RGT7(LQFP-64封装)引脚与STM32F405RGT6TR引脚兼容程度&#xff1…

AI周报(6.16-6.22)

1 不是AI而是逐帧视觉特效-2024年D&AD黑铅笔奖Women’s Football Women’s Football在2024年D&AD广告类Digital & Social类别中获得了黑铅笔奖,并在Film类别中获得了黄铅笔奖 原来那些超燃的画面,是把女足比赛的画面“换脸”成了男运动员。…

css 动画

transform的3D动画 3D形变函数会创建一个合成层来启用GPU硬件加速 translate transform: translateY(100px);transform: translateX(100px);transform: translateZ(100px);transform: translate3d(100px,100px,100px); // x,y,z的简写rotate deg弧度 transform: rotateX(-40…

API接口技术开发分享;按关键字搜索淘宝、天猫商品API返回值接入说明

淘宝数据API的接入流程主要包括注册key账号、创建开发者应用、获取ApiKey和ApiSecret、申请API权限等步骤。淘通过这些接口可以获取商品、订单、用户、营销和物流管理等多方面的数据。以下是关于淘宝数据API接入流程的相关介绍: 注册key账号:进行账号注册…

opencv-python(十一)

图像加法 import numpy as np import cv2 img cv2.imread(jk.jpg) res cv2.add(img, img) cv2.imshow(Mypicture1,img) cv2.imshow(MyPicture2,res)cv2.waitKey(0) cv2.destroyAllWindows() res cv2.add(src1, src2, dstNone, maskNone, dtypeNone) src1:第一幅…

colima配置docker镜像源

只在 colima ssh 环境下修改 docker 配置文件是无效的,我们需要修改 colima 配置文件才能使 docker 镜像源生效。 此时你需要进入到~/.colima/default目录下编辑colima.yaml文件。该文件是 colima 的配置文件。内容如下图所示,我这里配置了许多家的镜像源…

我的python-web基础(Flask前后端不分类)

1.HTML HTML是超文本标记语言 ( 英文 : HyperText Markup Language , HTML ),它不是编程语言,而是一种标记语言 HTML标记标签通常被称为HTML标签,它的特点如下: HTML标签是由尖括…

数据集标注研究

主要研究数据集标注存储文件的数据存储格式 目录 0.简介1.coco128-seg数据格式1.1 分割标注格式2.YOLO格式2.1 YOLO目标识别标签2.2 yolov5-seg分割标签2.TT100K数据集标注2.1 TT100K数据集标注文件解析0.简介 1.coco128-seg数据格式 1.1 分割标注格式 如coco128-seg数据集 …

力扣85.最大矩形

力扣85.最大矩形 遍历所有行作为底边 做求矩形面积&#xff08;84. class Solution {public:int maximalRectangle(vector<vector<char>>& matrix) {if (matrix.empty()) return 0;int n matrix.size(),m matrix[0].size();int res0;vector<int> li…