深度学习入门(五):经典网络Alexnet实现

news2024/11/24 14:37:16

介绍

AlexNet是一个深度卷积神经网络架构,于2010年代初在深度学习重新引起人们关注时发挥了重要作用。它因在2012年的ImageNet大规模视觉识别挑战(ILSVRC)中获胜而闻名。

实现

创建了一个AlexNet网络的实例,并将一个随机生成的输入张量(即一张随机的图像)传递给这个网络。随后,代码打印出通过该网络得到的输出张量,以及输出张量的大小。

import torch
from torch import nn
from torch.nn import Conv2d, MaxPool2d, ReLU


class Alexnet(nn.Module):
    # 定义了架构中使用的各个层
    def __init__(self, num_classes=1000):
        super().__init__()
        # out_channels:输出通道
        # kernel_size:内核大小
        # stride:步幅

        #input=3*227*227,ouput=96*55*55   (227-11)/4 + 1 = 55
        self.conv1 = Conv2d(in_channels=3, out_channels=96, kernel_size=11,stride=4)
        self.relu1 = ReLU(inplace=True)

        #input 96*55*55  output=96*27*27
        self.pool1 = MaxPool2d(kernel_size=3, stride=2)

        #input=96*27*27  output=256*27*27
        self.conv2 = Conv2d(in_channels=96, out_channels=256, kernel_size=5,
                            padding=2,stride=1)
        self.relu2 = ReLU(inplace=True)
        #input=256*27*27 output=256*13*13
        self.pool2 = MaxPool2d(kernel_size=3, stride=2)

        #input=256*13*13   output=384*13*13
        self.conv3 = Conv2d(in_channels=256, out_channels=384, kernel_size=3, padding=1,
                            stride=1)
        self.relu3 = ReLU(inplace=True)
        #input=384*13*13  output=384*13*13
        self.conv4 = Conv2d(in_channels=384, out_channels=384, kernel_size=3,
                            padding=1,stride=1)
        self.relu4 = ReLU(inplace=True)

        #input=384*13*13  output= 256*13*13
        self.conv5 = Conv2d(in_channels=384, out_channels=256, kernel_size=3, padding=1)
        self.relu5 = ReLU(inplace=True)

        #input=256*13*13 output=256*6*6
        self.pool5 = MaxPool2d(kernel_size=3,stride=2)

        # 全连接层
        self.fc1 = nn.Linear(in_features=256*6*6, out_features=4096)
        self.fc2 = nn.Linear(in_features=4096, out_features=4096)
        self.fc3 = nn.Linear(in_features=4096, out_features=num_classes)

    # 网络的前向传播,按顺序将定义的层应用于输入数据
    def forward(self, x):
        x = self.conv1(x)
        x = self.relu1(x)
        x = self.pool1(x)

        x = self.conv2(x)
        x = self.relu2(x)
        x = self.pool2(x)

        x = self.conv3(x)
        x = self.relu3(x)

        x = self.conv4(x)
        x = self.relu4(x)

        x = self.conv5(x)
        x = self.relu5(x)
        x = self.pool5(x)

        x = x.view(-1, 256*6*6)
        x = self.fc1(x)
        x = self.fc2(x)
        x = self.fc3(x)
        return x

if __name__ == '__main__':
    net = Alexnet(num_classes=1000)
    # print(net)
    # 随机生成输入张量(一张随机的图像)
    x = torch.randn(20, 3, 227, 227)
    y3 = net(x)
    print("y3的维度是:{}".format(y3.size()))
    print(y3)

# y3的维度是:torch.Size([20, 1000])
# 20表示批量中的图像数量,1000表示每个图像的预测类别分数。这是因为你同时将20张图像输入网络,所以输出是20个预测结果的向量。

输出

20表示批量中的图像数量,1000表示每个图像的预测类别分数。同时将20张图像输入网络,所以输出是20个预测结果的向量。
在这里插入图片描述

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

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

相关文章

云服务之PaaS:PaaS怎么帮助企业走向云

一、前言 企业想要平滑地向云迁移,需要选择一个适合自己的云基础框架。PaaS(平台即服务)作为云计算的重要组成部分,可以为用户提供完整的应用生命周期管理和相关资源服务。开发人员可以在PaaS框架构建和自定义应用程序,这为企业大大地节省了金…

金桥跨越相伴岁月 桂冠加冕爱意时光 GP芝柏表铭刻相爱传奇 演绎浪漫七夕

两个多世纪以前,康士坦特芝勒德 (Constant Girard) 与玛莉亚柏雷戈 (Marie Perregaux) 喜结连理,两颗心灵在爱意中交织,二人将姓氏结合,创立“Girard-Perregaux”芝柏表,成为数百年来瑞士高级制表中仅有的以夫妻双人姓…

龙迅LT7911UX TYPE-C/DP转MIPI/LVDS,内有HDCP

1. 描述 LT7911UX是一种高性能的Type-C/DP1.4a到MIPI或LVDS芯片。HDCP RX作为HDCP中继器的上游端,可以与其他芯片的HDCP TX协同工作,实现中继器的功能。 对于DP1.4a输入,LT7911UX可以配置为1/2/4车道。自适应均衡使其适用于长电缆应用&#…

设计模式(9)建造者模式

一、 1、概念:将一个复杂对象的构造与它的表示分离,使得同样的构造过程可以创建不同的表示。建造者模式主要用于创建一些复杂的对象,这些对象内部构建间的顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化;建造…

FUSE简单了解

FUSE是什么? FUSE(filesystem in userspace)是一个用户态文件系统框架。由内核模块(fuse.ko)、用户态库(libfuse.*)和挂载工具组成(fusermount) fuse最重要的特性是fuse可以允许安全、非特权挂…

设计师私藏的5个设计网站,你一定要知道。

这5个网站设计师都在用,找素材、找灵感一步到位,赶紧收藏~ 菜鸟图库 https://www.sucai999.com/?vNTYxMjky 菜鸟图库是一个非常大的素材库,站内包含设计、办公、自媒体、图片、电商等各行业素材。网站还为新手设计师提供免费的素材&#xf…

【C语言进阶(4)】指针和数组笔试题

文章目录 Ⅰ 一维数组Ⅱ 字符数组题型 1题型 2题型 3 Ⅲ 二维数组 数组名的意义 sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。&数组名,这里的数组名表示的是整个数组,取出的是整个数组的地址。除了上述…

*****独立看门狗总结实验

1、看门狗定时计算 看门狗的喂狗时间(也就是看门狗溢 出时间)的计算方式为: Tout((42^prer) rlr) /32 其中 Tout 为看门狗溢出时间(单位为 ms)。 prer 为看门狗时钟预分频值(IWDG_PR 值)&#…

OpenGL —— 2.3、绘制第一个三角形(附源码,glfw+glad)(更新!)

源码效果 C源码 vertexShader.glsl #version 330 corelayout(location 0) in vec3 aPos; layout(location 1) in vec3 aColor;out vec4 outColor;void main() {gl_Position vec4(aPos.x, aPos.y, aPos.z, 1.0);outColor vec4(aColor, 1.0); };fragmentShader.glsl #versi…

离散Fourier变换的一种理解方法

1. 离散Fourier变换的定义 一个信号 x 的离散Fourier变换(Discrete Fourier Transform,简记为DFT)定义为 , 其逆(inverse) Fourier变换(简记为 IDFT)定义为 。 (译注:符号“≜”表示“根据定义,左边等于右边”。) 其中&#x…

电脑连接手机热点无法访问 GitHub

电脑连接手机热点无法访问 GitHub 解决方案 修改本地请求配置 修改 Windows 中 hosts 文件,路径: C:\Windows\System32\drivers\etc 添加内容: 140.82.112.4 www.github.com 140.82.112.4 github.com 提示:Windows 有权限限制&am…

智慧班牌云平台源码 (人脸识别、信息发布、校园风采、家校互通、教务管理、考勤管理)

电子班牌是一款智慧校园的管理工具,也是校园的多媒体展示平台,智慧电子班牌系统是专为学校智慧教育设计的一款智慧校园的管理工具,融合了多媒体信息发布、校园风采、家校互通、教务管理、考勤管理、日常办公等一系列应用。具备智慧教育功能和…

Mybatis的动态SQL及关键属性和标识的区别(对SQL更灵活的使用)

( 虽然文章中有大多文本内容,想了解更深需要耐心看完,必定大有受益 ) 目录 一、动态SQL ( 1 ) 是什么 ( 2 ) 作用 ( 3 ) 优点 ( 4 ) 特殊标签 ( 5 ) 演示 二、#和$的区别 2.1 #使用 ( 1 ) #占位符语法 ( 2 ) #优点 2.…

Mac Flutter web环境搭建

获取 Flutter SDK 下载以下安装包来获取最新的 stable Flutter SDK将文件解压到目标路径, 比如: cd ~/development $ unzip ~/Downloads/flutter_macos_3.13.0-stable.zip 配置 flutter 的 PATH 环境变量: export PATH"$PATH:pwd/flutter/bin" // 这个命…

java版数字藏品深色UI仿鲸探数藏盲盒合成短视频卡牌模式支持高并发

此版本为JAVA开发的版本 系统稳定 数据库MYSQL 前端uniapp 支持百万级用户,急速搭建 主要功能介绍 艺术品发售 藏品发售用户可以购买 后台藏品可设置不同稀有度 二级市场 用户的藏品可以直接挂售到二级市场商城 其他用户可以购买自己的藏品 合成 可以通过…

STM32 F103C8T6学习笔记12:红外遥控—红外解码-位带操作

今日学习一下红外遥控的解码使用,红外遥控在日常生活必不可少,它的解码与使用也是学习单片机的一个小过程,我们将通过实践来实现它。 文章提供源码、测试工程下载、测试效果图。 目录 红外遥控原理: 红外遥控特点: …

MyBatis进阶:掌握MyBatis动态SQL与模糊查询、结果映射,让你在面试中脱颖而出!!

目录 一、引言 二、MyBatis动态SQL 2.1.if元素使用 2.2.foreach元素使用 三、MyBatis模糊查询 ①使用#{字段名} ②使用${字段名} ③使用concat{%,#{字段名},%} 总结 四、MyBatis结果映射 4.1.案例演示 4.1.1.resultType进行结果映射 4.1.2.resultMap进行结果映射 …

【Java从入门到精通|1】从特点到第一个Hello World程序

写在前面 在计算机编程领域,Java是一门广泛应用的高级编程语言。它以其强大的跨平台性能、丰富的库和生态系统以及易于学习的语法而备受开发者欢迎。本文将引导您逐步了解Java的特点、如何安装和配置开发环境,以及如何编写您的第一个Java程序。 一、Java…

AI智能问答原来有这么多优点!

AI智能问答是最近一个比较新的概念,looklook今天打算从AI智能问答的优点出发,来和大家聊聊它的具体优势。到底为什么这么多企业都开始选择搭建这个AI智能问答,奥秘就在这里啦! AI智能问答的优点 1.提高客户满意度——AI智能问答系…

my_CNN-FWI实验

CNN之后的模型结果: 2000epoch Rmse:0.0584 之前SMOOTH的结果 放一张对比图: