AI学习记录 - 怎么理解 torch 的 nn.Conv2d

news2024/11/15 3:52:43

有用就点个赞

怎么理解 nn.Conv2d 参数

conv_layer = nn.Conv2d(in_channels=3, out_channels= 64, kernel_size=3, stride=1, padding=0, bias=False)

in_channels

in_channels 可以设置成1,2,3,4等等都可以,一般来说做图像识别的时候,先使用图片解析工具把一个彩色图片变成三个通道的图片,所以一张图片对应有三张图,in_channels 一般来说等于3,当然你可以发明一个四通道图片,in_channels就等于4。又或者你直接使用原图,那么in_channels 的值就相当于有多少张不同的图片,怎么理解都可以。

在这里插入图片描述

先看参数对应什么,一般说卷积核都是二维的,但是这里指的是三维卷积核,一共有64个三维卷积核,如果变成二维的话,就有192个二维卷积核,可以理解为将三个通道的图片通过一个三维卷积核压缩成一个特征图,64个三维卷积核那就压缩成64个特征图

在这里插入图片描述

如果再不懂,举个简单的例子,input_tensor 的尺寸是 3*3 ,真实情况下肯定是100 * 100以上啦,图片一般都很大,这里不会滑动而已

import torch
import torch.nn as nn

# 定义输入张量,形状为 (batch_size, in_channels, height, width)
input_tensor = torch.tensor([[[[1, 1, 1],
                               [1, 1, 1],
                               [1, 1, 1]],

                              [[0, 1, 0],
                               [0, 1, 0],
                               [0, 1, 0]],

                              [[1, 0, 1],
                               [1, 0, 1],
                               [1, 0, 1]]]], dtype=torch.float32)

# 定义一个卷积层,输入通道数为3,输出通道数为6,卷积核大小为3x3
conv_layer = nn.Conv2d(in_channels=3, out_channels=6, kernel_size=3, bias=False)
print(input_tensor.size())
# 修改第一个通道的权重,但其实这里有6个三维卷积核
with torch.no_grad():
    conv_layer.weight[0] = torch.nn.Parameter(torch.tensor([[[1, 1, 1],
                                                             [1, 1, 1],
                                                             [1, 1, 1]],

                                                            [[1, 1, 1],
                                                             [1, 1, 1],
                                                             [1, 1, 1]],

                                                            [[1, 1, 1],
                                                             [1, 1, 1],
                                                             [1, 1, 1]]], dtype=torch.float32))
print(conv_layer.weight.size())
# 进行卷积操作
output = conv_layer(input_tensor)

# 输出结果
print("输入张量:")
print(input_tensor)
print("\n卷积核权重(仅第一个输出通道显示):")
print(conv_layer.weight[0])
print("\n输出结果(仅显示第一个输出通道的卷积结果):")
print(output[0][0])  # 只显示第一个输出通道的结果

再不懂,画个线
在这里插入图片描述

通道图和卷积核的计算方式,简单的例子

在这里插入图片描述
计算:
在这里插入图片描述

卷积核的数量,由 out_channels 决定,out_channels是多少,就生成多少个卷积核。

padding 参数解析

padding = 1,周围填充0
在这里插入图片描述
padding = 2,周围填充0
在这里插入图片描述

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

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

相关文章

大模型就业行情揭秘:哪些岗位最吃香?

随着人工智能技术的发展,尤其是大模型技术的成熟与广泛应用,相关行业的人才需求量也呈现出爆发式增长。对于想要进入这个领域的求职者来说,了解当前大模型就业岗位的行情显得尤为重要。本文将深入剖析目前大模型就业岗位的市场情况&#xff0…

本地生活本地推软件有哪些?手把手教你从零开始提升转化率!

当前,多家互联网大厂在本地生活版块的布局不断深入,让本地生活市场不断焕发新活力的同时,也使得竞争态势日益激烈。在此背景下,对于本地生活服务商而言,无论是想要拓展品牌商家资源,还是想要改善交付效果&a…

广东超高清视频产业高质量发展成果展在粤开展

8月27日,广东超高清视频产业高质量发展成果展于中国(广州)超高清视频创新产业园区广州国际媒体港举行。本次展会聚焦广东超高清视频产业,展示以新技术赋能广电新质生产力,推动广播影视和网络视听高质量发展的最新成果&…

[Arxiv 2024] Self-Rewarding Language Models

Contents IntroductionMethodExperimentsReferences Introduction 作者提出 Self-Rewarding 训练框架,LLM 在训练过程中同时担任 actor 和 critic,actor 负责合成新数据,critic 负责判断合成数据质量用于组成高质量的偏好数据集用于模型的下…

网络排名变差算法在充电桩计量可信度评价中的应用AcrelCloud-9000安科瑞充电柱收费运营云平台

摘要:网络排名变差算法是指根据充电交易流水数据构造桩车网络,利用复杂网络的投票智慧而非传统的物理实验来获得对量值的信心。将排名变差算法用于桩车网络计算中,旨在检定合格的充电桩对其他充电桩排名变化的影响,这种影响以电动…

若依添加字段权限功能

页面长这样 /*Navicat Premium Data TransferSource Server : 本地Source Server Type : MySQLSource Server Version : 80038Source Host : 127.0.0.1:3306Source Schema : healthTarget Server Type : MySQLTarget Server Version : 80038Fi…

干货满满!五大调光方式让你全面了解LED照明

LED的发光原理同传统照明不同,是靠P-N结发光,同功率的LED光源,因其采用的芯片不同,电流电压参数则不同,故其内部布线结构和电路分布也不同,导致了各生产厂商的光源对调光驱动的要求也不尽相同&a…

PHP付费心理测评小程序源码心理测试抑郁症性格测试H5变现系统源码

揭秘付费心理测试新宠:郁郁症性格测试小程序,如何变现又贴心? 🌈 引言:心理健康的数字化探索 在这个快节奏、高压力的时代,越来越多的人开始关注自己的心理健康。付费心理测试,尤其是针对郁郁…

【JAVA入门】Day26 - Lambda表达式

【JAVA入门】Day26 - Lambda表达式 文章目录 【JAVA入门】Day26 - Lambda表达式一、函数式编程二、Lambda表达式的省略写法 Lambda表达式在代码中最常用的功能就是简化匿名内部类的书写。 Ingeger[] arr {2, 3, 1, 5, 6, 7, 8, 4, 9};Arrays.sort(arr, new Comparator<Int…

【深度学习与NLP】——深度卷积神经网络AlexNet

目录 一、卷积神经网络的发展历程 二、简要介绍 三、代码实现 四、缺点和过时的地方 一、卷积神经网络的发展历程 早期理论基础阶段&#xff08;20 世纪 60 年代 - 80 年代&#xff09;&#xff1a; 1968 年&#xff0c;Hubel 和 Wiesel 通过对猫视觉神经的研究&#xff0…

Amazon Bedrock 实践:零基础创建贪吃蛇游戏

本文探讨了如何利用 Amazon Bedrock 和大型语言模型&#xff0c;快速创建经典的贪吃蛇游戏原型代码。重点展示了利用提示工程&#xff0c;将创新想法高效转化为可运行代码方面的过程。文章还介绍了评估和优化提示词质量的最佳实践。 亚马逊云科技开发者社区为开发者们提供全球的…

C++笔记12•面向对象之继承•

继承 1.继承的概念及定义 &#xff08;1&#xff09;概念&#xff1a; 继承 (inheritance) 机制是面向对象程序设计 使代码可以复用 的最重要的手段&#xff0c;它允许程序员在 保 持原有类特性的基础上进行扩展 &#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称…

【Linux】进程|进程的查看与管理|创建进程

目录 1️⃣ 进程的概念&#xff08;Process&#xff09; 1.什么是进程&#xff1f; 2.多进程管理 3. 描述进程-PCB 2️⃣ 进程的查看与管理 1.使用指令查看进程 2.通过系统调用函数查看pid 3.杀掉进程 4.ppid&#xff08;父进程id&#xff09; 3️⃣ 创建进程 fork(…

大模型面试:LLM+向量库的文档对话系统

面试题 1.1 为什么大模型需要外挂(向量)知识库&#xff1f;如何将外部知识注入大模型&#xff0c;最直接的方法&#xff1a;利用外部知识对大模型进行微调 回答 大模型需要外挂(向量)知识库的原因&#xff1a; 知识更新频率&#xff1a;大模型在训练时使用的知识是静态的&a…

关于喷墨打印:液滴喷射及基材影响的那些事儿

大家好&#xff0c;今天我们来探讨一篇关于液滴喷射在生物应用中相关知识的文章——《Understanding droplet jetting on varying substrate for biological applications》是发表于《International Journal of Bioprinting》。在生物打印领域&#xff0c;了解液滴在不同基材上…

做每日计划记录,有什么好的软件推荐2channel茅盾先生《春蚕》苏四嫂的过劳死茅盾的《秋收》主题和象征文学风格

目录 做每日计划记录&#xff0c;有什么好的软件推荐 2channel 茅盾先生《春蚕》 苏四嫂的过劳死 茅盾的《秋收》 主题和象征 文学风格 做每日计划记录&#xff0c;有什么好的软件推荐 做每日计划记录的软件有很多&#xff0c;下面是几款非常实用的推荐&#xff0c;适合…

基于yolov8的人员溺水检测告警监控系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的人员溺水检测告警监控系统是一种高效、智能的安全监控解决方案。该系统利用YOLOv8目标检测算法的先进性能&#xff0c;实现了对水域中人员溺水行为的精准识别与快速响应。 YOLOv8继承了YOLO系列算法的优点&#xff0c;如单次预测、速度快、精度高&a…

牛客周赛 Round 57(A,B,C,D,E,F,G)

比赛链接 官方题解 这场的题还不错&#xff0c;D是一个计算几何&#xff0c;考察到了一些线性代数里叉积的知识&#xff0c;E是爆搜打表&#xff0c;不太常规&#xff0c;所以做起来感觉还不错&#xff1f;FG偏简单&#xff0c;F是multiset线段树&#xff0c;G是很简单的构造…

C语言 | Leetcode C语言题解之第376题摆动序列

题目&#xff1a; 题解&#xff1a; int wiggleMaxLength(int* nums, int numsSize) {if (numsSize < 2) {return numsSize;}int prevdiff nums[1] - nums[0];int ret prevdiff ! 0 ? 2 : 1;for (int i 2; i < numsSize; i) {int diff nums[i] - nums[i - 1];if ((…

maxwell读取mysql binlog到kafka

下载地址 https://maxwells-daemon.io/解压压缩包 tar -zxvf maxwell-1.29.0.tar.gz -C /opt/module/初始化maxwell元数据库 在mysql中为maxwell创建一个数据库 复制 config.properties.example 文件 cp config.properties.example config.properties修改config.propertie…