pytorch Neural Networks学习笔记

在这里插入图片描述

(1)输入图像,1×32×32,通道数1,高32,宽32
(2)卷积层1,滤波器的shape为6×1×5×5,滤波器个数6,通道数1,高5,宽5。卷积层1的输出为6×28×28。
(3)relu层,输出和输入的shape相同
(4)池化层,滤波器的大小为2×2,stride为2×2,输出为6×14×14。
(5)卷积层2,滤波器的shape为16×6×5×5,滤波器个数16,通道数6,高5,宽5。卷积层2的输出为16×10×10。
(6)relu层,输出和输入的shape相同
(7)池化层,滤波器的大小为2×2,stride为2×2,输出为16×5×5。reshape为1×400后输入到全连接层1。
(8)全连接层1,权重的shape为400×120,输出为1×120
(9)relu层,输出和输入的shape相同
(10)全连接层2,权重的shape为120×84,输出为1×84
(11)relu层,输出和输入的shape相同
(12)全连接层3,权重的shape为84×10,输出为1×10

  这个网络的结构如下:

input -> conv2d -> relu -> maxpool2d -> conv2d -> relu -> maxpool2d-> flatten -> linear -> relu -> linear -> relu -> linear-> MSELoss-> loss

  Let’s define this network:

import torch
import torch.nn as nn
import torch.nn.functional as Fclass Net(nn.Module):def __init__(self):super(Net, self).__init__()# 1 input image channel, 6 output channels, 5x5 square convolution# kernelself.conv1 = nn.Conv2d(1, 6, 5)self.conv2 = nn.Conv2d(6, 16, 5)# an affine operation: y = Wx + bself.fc1 = nn.Linear(16 * 5 * 5, 120)  # 5*5 from image dimensionself.fc2 = nn.Linear(120, 84)self.fc3 = nn.Linear(84, 10)def forward(self, x):# Max pooling over a (2, 2) windowx = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))# If the size is a square, you can specify with a single numberx = F.max_pool2d(F.relu(self.conv2(x)), 2)x = torch.flatten(x, 1) # flatten all dimensions except the batch dimensionx = F.relu(self.fc1(x))x = F.relu(self.fc2(x))x = self.fc3(x)return xnet = Net()
print(net)
Net((conv1): Conv2d(1, 6, kernel_size=(5, 5), stride=(1, 1))(conv2): Conv2d(6, 16, kernel_size=(5, 5), stride=(1, 1))(fc1): Linear(in_features=400, out_features=120, bias=True)(fc2): Linear(in_features=120, out_features=84, bias=True)(fc3): Linear(in_features=84, out_features=10, bias=True)
)

  这里写代码测试一下flatten函数的用法:

>>> data=[[[1,2,3],[4,5,6]], [[7,8,9],[10,11,12]]]
>>> x_data = torch.tensor(data)
>>> print(f"x_data: \n {x_data} \n")
x_data:tensor([[[ 1,  2,  3],[ 4,  5,  6]],[[ 7,  8,  9],[10, 11, 12]]])>>> print(f"Shape of x_data: {x_data.shape}")
Shape of x_data: torch.Size([2, 2, 3])
>>> x_data = torch.flatten(x_data, 1)
>>> print(f"x_data: \n {x_data} \n")
x_data:tensor([[ 1,  2,  3,  4,  5,  6],[ 7,  8,  9, 10, 11, 12]])>>> print(f"Shape of x_data: {x_data.shape}")
Shape of x_data: torch.Size([2, 6])

  该网络有2个卷积层和3个全连接层,有5个权重参数和5个偏置参数,共10个参数。

params = list(net.parameters())
print(len(params))
for i in range(len(params)):print(params[i].size())

  以上代码打印了每个参数的shape,如下:

10
torch.Size([6, 1, 5, 5])
torch.Size([6])
torch.Size([16, 6, 5, 5])
torch.Size([16])
torch.Size([120, 400])
torch.Size([120])
torch.Size([84, 120])
torch.Size([84])
torch.Size([10, 84])
torch.Size([10])

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

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

相关文章

【介绍下负载均衡原理及算法】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

使用docker配置DSP-SLAM

一.Docker环境配置 1.简单介绍 –docker容器技术–。 简单理解:Anaconda用于隔离不同的python环境;docker可以理解成在你的机器里面安装了一个独立的系统,因此它可以隔离不同的CUDA环境,还有着独立的文件系统,防止别…

BERT 微调中文 NER 模型

查看GPU数量和型号 import torch# 检查CUDA是否可用 if torch.cuda.is_available():print("CUDA is available!")# 还可以获取CUDA设备的数量device_count torch.cuda.device_count()print(f"Number of CUDA devices: {device_count}")# 获取第一块GPU的…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用HDR功能(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用HDR功能(C#) Baumer工业相机Baumer工业相机通过NEOSDK进行图像压缩的技术背景代码分析第一步:先引用合适的类文件第二步:通过NEOAPI SDK使用HDR高动态范围功能第二步&#xff1a…

设计模式学习(五)——《大话设计模式》

文章目录 设计模式学习(五)——《大话设计模式》UML类图主要组成元素绘制UML类图的步骤如何绘制好UML类图确定类定义关系使用标准符号添加注释工具选择复审与优化求反馈 UML类图和设计模式的关系根据设计模式绘制UML类…

计算机网络----由概述到ICMP

麻烦先把五个层次刻进DNA里面 应用层 传输层 网络层 数据链路层 物理层 网络层和传输层的区别 网络层:设备到设备 传输层:端口到端口,进程到进程 物理层: 考虑的是怎样才能在连接计算机的传输媒体上传输比特流, 主要考虑的是屏蔽掉不同传输媒体和通信手段…

高级IO和5种IO模型

目录 1. 高级IO1.1 IO的基本概念1.2 OS如何得知外设当中有数据可读取1.3 OS如何处理从网卡中读取到的数据包1.4 IO的步骤 2. 五种IO模型2.1 利用钓鱼来理解2.2 阻塞IO2.3 非阻塞IO2.4 信号驱动IO2.5 IO多路转接2.6 异步IO 3. 高级IO的概念3.1 同步通信 VS 异步通信3.2 阻塞 VS …

k-means聚类算法的MATLAB实现及可视化

K-means算法是一种无监督学习算法,主要用于数据聚类。其工作原理基于迭代优化,将数据点划分为K个集群,使得每个数据点都属于最近的集群,并且每个集群的中心(质心)是所有属于该集群的数据点的平均值。以下是…

数据仓库元数据管理

数据仓库元数据管理是数据仓库中至关重要的一环,它涉及到对数据仓库中的元数据进行收集、存储、组织、查询、维护和安全管理等方面的工作。本文将介绍数据仓库元数据管理的定义、分类、应用、价值、管理方案、具体实施和挑战,以帮助读者更好地理解和应用…

STM32有什么高速接口吗?

STM32系列微控制器在高速接口方面也提供了一些强大的功能,虽然没有像Zynq那样的可编程逻辑部分,但有一些特性值得注意。我这里有一套嵌入式入门教程,不仅包含了详细的视频 讲解,项目实战。如果你渴望学习嵌入式,不妨点…

【数据结构与算法】用两个栈实现一个队列

题目 用两个栈,实现一个队列功能 add delete length 队列 用数组可以实现队列,数组和队列的区别是:队列是逻辑结构是一个抽象模型,简单地可以用数组、链表实现,所以数组和链表是一个物理结构,队列是一个逻…

【C语言笔记】strncpy()和strcpy()的异同点

文章目录 一,简介二,相同点:2.1 两者都用于将一个字符串复制到另一个字符串中。2.2 它们都以源字符串的结束符 \0 结尾。 三,不同点:3.1 指定复制的最大长度:3.2 处理目标缓冲区溢出的方式:3.3 …

Docker安装SQL Server 2022

官网:Docker:为 Linux 上的 SQL Server 安装容器 - SQL Server | Microsoft Learn 1. 拉取镜像 sudo docker pull mcr.microsoft.com/mssql/server:2022-latest 2. 运行docker容器 方式一:不挂载数据目录 docker run -e "ACCEPT_EUL…

python借助elasticsearch实现标签匹配计数

给定一组标签 [{“tag_id”: “1”, “value”: “西瓜”}, {“tag_id”: “1”, “value”: “苹果”}],我想精准匹配到现有的标签库中存在的标签并记录匹配成功的数量。 标签id(tag_id)标签名(tag_name)标签值(tag_name )1水果西瓜1水果苹果1水果橙子2动物老虎 …

用python计算一个人的BMI

1 问题 一个人的身高是1.75m和体重是80.5kg,根据BMI公式(体重除以身高的平方)帮这个人计算他的BMI指数,并根据BMI指数:低于18.5是过轻,18.5-25是正常,25-28是过重,28-32是肥胖&#…

Go 单元测试基本介绍

文章目录 引入一、单元测试基本介绍1.1 什么是单元测试?1.2 如何写好单元测试1.3 单元测试的优点1.4 单元测试的设计原则 二、Go语言测试2.1 Go单元测试概要2.2 Go单元测试基本规范2.3 一个简单例子2.3.1 使用Goland 生成测试文件2.3.2 运行单元测试2.3.3 完善测试用…

easyexcel升级3.3.4失败的经历

原本想通过easyexcel从2.2.6升级到3.3.3解决一部分问题,结果之前的可以用的代码,却无端的出现bug 1 Sheet index (1) is out of range (0…0) 什么都没有改,就出了问题,那么问题肯定出现在easyexcel版本自身.使用模板填充的方式进…

conda新建环境报错An HTTP error occurred when trying to retrieve this URL.

conda新建环境报错如下 cat .condarc #将 .condarc文件中的内容删除,改成下面的内容 vi .condarc channels:- defaults show_channel_urls: true default_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.…

权限管理Ranger详解

文章目录 一、Ranger概述与安装1、Ranger概述1.1 Ranger介绍1.2 Ranger的目标1.3 Ranger支持的框架1.4 Ranger的架构1.5 Ranger的工作原理 2、Ranger安装2.1 创建系统用户和Kerberos主体2.2 数据库环境准备2.3 安装RangerAdmin2.4 启动RangerAdmin 二、Ranger简单使用1、安装 R…

Cesium之home键开关及相机位置设置

显隐控制 设置代码中的homeButton var TDT_IMG_C "https://{s}.tianditu.gov.cn/img_c/wmts?servicewmts&requestGetTile&version1.0.0" "&LAYERimg&tileMatrixSetc&TileMatrix{TileMatrix}&TileRow{TileRow}&TileCol{TileCol}…