手动实现卷积操作

本文介绍了一种简单方法,手动将3通道3X3的图片与3通道2X2的卷积核转化为矩阵,进行点积运算,以完成卷积操作。步幅为1,无填充。
摘要由CSDN通过智能技术生成

参考博客https://buptldy.github.io/2016/10/01/2016-10-01-im2col/

# -*- coding:utf8 -*-

import numpy as np
import time 
import timeit
#手动实现卷积操作 假设输入图片,核均为正方形,通道数为1,核数量为3,步幅为1,填充为0

X = np.array([[1,2,0],[1,1,3],[0,2,2]])
K = np.array([[[1,1,],[2,2]],[[1,1],[1,1]],[[0,1],[1,0]]])
number =3
kernel_size = 2

# 普通卷积,对应项相乘再求和
def conv_op(bottom,b_size,kernel,kernel_size,number,stride,padding):
	top_size = (b_size + 2*padding - kernel_size)/stride+1
	top = np.zeros(shape=(number,top_size,top_size))
	for c in range(number):#第c个核
		for h in range(top_size):#竖直方向第h次截取图的部分
			for w in range(top_size):#水平方向第w次
				# 先滑动窗口取部分图 依次乘第c个kernel并求和 赋给特征图对应位置
				top[c,h,w] = np.sum(bottom[h*stride:h*stride&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值