pytorch复现_conv2d

news2025/3/1 14:09:13


import numpy as np


def conv2d(inputs, kernels, bias, stride, padding):
    """
    正向卷积操作
    inputs: 输入数据,形状为 (C, H, W)
    kernels: 卷积核,形状为 (F, C, HH, WW),C是图片输入层数,F是图片输出层数
    bias: 偏置,形状为 (F,)
    stride: 步长
    padding: 填充
    """
    # 获取输入数据和卷积核的形状
    C, H, W = inputs.shape
    F, _, HH, WW = kernels.shape

    # 对输入数据进行填充。在第一个轴(通常是通道轴)上不进行填充,在第二个轴和第三个轴(通常是高度和宽度轴)上在开始和结束位置都填充padding个值。
    inputs_pad = np.pad(inputs, ((0, 0), (padding, padding), (padding, padding)))

    # 初始化输出数据,卷积后的图像size大小
    H_out = 1 + (H + 2 * padding - HH) // stride
    W_out = 1 + (W + 2 * padding - WW) // stride
    outputs = np.zeros((F, H_out, W_out))

    # 进行卷积操作
    for i in range(H_out):
        for j in range(W_out):  # 找到out图像对于的原始图像区域,然后对图像进行sum和bias
            inputs_slice = inputs_pad[:, i*stride:i*stride+HH, j*stride:j*stride+WW] 
            outputs[:, i, j] = np.sum(inputs_slice * kernels, axis=(1, 2, 3)) + bias
            # axis=(1, 2, 3)表示在通道、高度和宽度这三个轴上进行求和。
    return outputs

# test

# 创建模拟数据
inputs = np.random.rand(3, 5, 5)  # 3通道,5x5的输入数据
kernels = np.random.rand(4, 3, 3, 3)  # 4个输出通道,3通道的3x3卷积核
bias = np.random.rand(4)  # 4个偏置项
stride = 1
padding = 1

# 调用conv2d函数进行卷积操作
outputs = conv2d(inputs, kernels, bias, stride, padding)

# 打印卷积后的输出形状
print("卷积后的输出形状:", outputs.shape)

在这里插入图片描述

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

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

相关文章

J2L3x 团队沟通协作软件双十一特惠活动 三重福利享不停!

福利一:J2L3x 系统免费账号限量领 我们精心为你提供了 J2L3x 系统免费账号,账号数量有限哦!快来注册领取,即可畅享 J2L3x 的高效沟通和团队协作,无论何时何地,都可以与团队紧密协作,提高工作效率…

总结对比硬件和渲染设置对AE渲染速度和质量的影响

相同模板 2018开了光追 2023没开 旧电脑没开 新电脑开了 具体参数 新电脑:cpu i7 14700KF gpu 4060ti 16g 内存ddr5 64g 4800频率 旧电脑参数:gpu 1660 cpu i7 第三代 内存 ddr3 32g 使用效果:e3d(采样值提高)、灯光…

汽车电子中的NCV70517MW002R2G 微步进电机驱动器 车规级芯片 安全可靠

NCV70517MW002R2G是一款用于双极步进电机的微步进电机驱动器。该芯片通过 IO 引脚和 SPI 接口与外部微控制器进行联接。包含一个电流转换表,根据 NXT 输入引脚上的时钟信号以及 DIR(方向)寄存器或输入引脚的状态采用下一个微步进。如果检测到…

Zabbix“专家坐诊”第209期问答汇总

问题一 Q:我用shellwebhook 推送天气情况,但是一直有报错,是什么问题呢? A1:单引号把变量引起来就不是变量了,这几个改成双引号试下,不行的话就在双引号前面加转义符 !在这里插入图片描述 A2&a…

众和策略:承诺10年不减持转让!这家造车新势力拼了!

当地时间10月31日,美股三大股指收高,但在10月份均录得跌幅。其间,道指涨0.38%,10月份累计下跌1.36%;标普指数涨0.65%,10月份累计下跌2.2%;纳斯达克指数涨0.48%,10月份累计下跌2.78%。…

由QTableView/QTableWidget显示进度条和按钮,理解qt代理delegate用法

背景: 我的最初应用场景,就是要在表格上用进度条显示数据,以及放一个按钮。 qt-creator中有自带的delegate示例可以参考,但终归自己动手还是需要理解细节,否则不能随心所欲。 自认没那个天赋,于是记录下…

LSF 守护程序和进程、集群通信路径和安全模型

LSF 细观 了解在 LSF 主机上运行的各种守护进程,LSF 集群通信路径,以及 LSF 如何容许集群中的主机故障。 1、LSF 守护程序和进程 集群中的每个主机上都运行多个 LSF 进程。 正在运行的进程的类型和数量,取决于主机是主节点还是计算节点。 主…

LiveGBS流媒体平台GB/T28181常见问题-概览中负载信息具体表示什么直播、回放、播放、录像、H265、级联等

LiveGBS常见问题-概览中负载信息具体表示什么直播、回放、播放、录像、H265、级联等 1、负载信息2、负载信息说明3、搭建GB28181视频直播平台 1、负载信息 实时展示直播、回放、播放、录像、H265、级联等使用数目 2、负载信息说明 直播:当前推流到平台的实时视频…

Windows ObjectType Hook 之 OpenProcedure

1、背景 Object Type Hook 是基于 Object Type的一种深入的 Hook,比起常用的 SSDT Hook 更为深入。 有关 Object Type 的分析见文章 《Windows驱动开发学习记录-ObjectType Hook之ObjectType结构相关分析》。 这里进行的 Hook 为 其中之一的 OpenProcedure。文章分两…

计算机数据库中了locked勒索病毒怎么解决,勒索病毒解密,数据恢复

网络的发展为企业的生产生活提供了极大的便利,但是,随之而来的网络安全威胁也不断增加,从11月份以来,云天数据恢复中心陆续接到很多企业的求助,企业的计算机数据库遭到了locked勒索病毒攻击,所有数据库中的…

【C/C++】空指针访问成员函数

C中空指针也是可以调用成员函数的&#xff0c;但是也要注意有没有用到this指针。 如果用到this指针&#xff0c;需要加以判断保证代码的健壮性。 示例&#xff1a; #include <iostream> #include <string> using namespace std;//空指针访问成员函数 class Pers…

JVM堆内存解析

一、JVM堆内存介绍 Java大多数对象都是存放在堆中&#xff0c;堆内存是完全自动化管理&#xff0c;根据垃圾回收机制不同&#xff0c;Java堆有不同的结构&#xff0c;下面是我们一台生产环境服务器JVM堆内存空间分配情况&#xff0c;JVM只设置了-Xms2048M -Xmx2048M。 1、JVM堆…

cnpm windows系统安装后查看版本cnpm -v报错Error: Cannot find module ‘node:util‘

1、报错截图 2、原因 在网上查了一些资料&#xff0c;有的说配置环境变量就可以&#xff0c;但经过配置后发现还是会报错。又查到说是由于cnpm和npm的版本不一致导致的&#xff0c;最后尝试成功解决&#xff01;&#xff01;&#xff01; 2、解决办法 1、先卸载掉之前安装的c…

【Git企业开发】第四节.Git的分支管理策略和bug分支

文章目录 前言一、Git的分支管理策略 1.1 Fast forward 模式和--no-ff 模式 1.2 企业分支管理策略二、bug分支三、删除临时分支四、总结总结 前言 一、Git的分支管理策略 1.1 Fast forward 模式和--no-ff 模式 通常合并分支时&#xff0c;如果可能&#xff0c;Git 会…

leetcode82删除排序链表中的重复元素

删除链表重复元素 题目描述 思路分析 思路1&#xff1a;采用一次遍历&#xff0c;内部循环判定是否相等 具体分析一下指针移动 外部循环判定卡住的位置 c语言代码&#xff1a; #include <stdio.h> #include <stdlib.h>struct ListNode {int val;struct ListNode …

Paper reading: segment anything in high quality NIPS2023

最近发展起来的SAM模型&#xff0c;表示分割模型的一个大的跃进&#xff0c;尤其是在零样本的能力和灵活提升方面。尽管利用1.1bollion的mask&#xff0c;SAM在掩码预测方面已经存在很大的问题&#xff0c;尤其是目标有着复杂结构的时候。 我们提出一个HA-SAM。 设计学习一个…

2023腾讯云双11优惠价格表发布:轻量云服务器和CVM云服务器的优惠价格

双十一购物狂欢节即将来临&#xff0c;作为IT行业的从业者或企业用户&#xff0c;我们也可以享受到腾讯云在这个节日里带来的超值优惠。近日&#xff0c;腾讯云发布了2023年双十一优惠价格表&#xff0c;其中包括了轻量云服务器和CVM云服务器的各项优惠价格。本文将为您详细介绍…

labelme安装后无法启动

问题 labelme安装后无法启动&#xff0c;输入labelme后出现了如下错误信息&#xff1a; labelme : 无法将“labelme”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确保路径正确&#xff0c;然后再试一次。 所…

2023年10月文章一览

2023年10月编程人总共更新了6篇文章&#xff1a; 1.2023年9月文章一览 2.Programming abstractions in C阅读笔记&#xff1a;p161-p165 3.Programming abstractions in C阅读笔记&#xff1a;p166-p175 4.Programming abstractions in C阅读笔记&#xff1a;p176-p178 5.…