【patch】CNN中 patch 是什么?patch 在CNN学习训练中是怎么起作用的?

在阅读基于深度卷积神经网络的图像识别、分类或检测的文献时经常看到“patch”,不是很能理解,后来就总结了一下。

 

通过阅读,“patch”似乎是CNN输入图像的其中一小块,但它究竟是什么呢?当使用CNN解决问题时,“patch”什么时候开始起作用?为什么我们需要“patch”? “patch”和内核(即特征检测器)之间有什么关系?

在CNN学习训练过程中,不是一次来处理一整张图片,而是先将图片划分为多个小的块,内核 kernel (或过滤器或特征检测器)每次只查看图像的一个块,这一个小块就称为 patch,然后过滤器移动到图像的另一个patch,以此类推。

当将CNN过滤器应用到图像时,它会一次查看一个 patch 。

CNN内核/过滤器一次只处理一个 patch,而不是整个图像。这是因为我们希望过滤器处理图像的小块以便检测特征(边缘等)。这也有一个很好的正则化属性,因为我们估计的参数数量较少,而且这些参数必须在每个图像的许多区域以及所有其他训练图像的许多区域都是“好”的。

所以 patch 就是内核 kernel 的输入。这时内核的大小便是 patch 的大小。

如图,主动脉弓和心脏,绿色部分相同,而黄色部分不同。传统的CNN算法,区分效果不佳。在 Multi-Instance Multi-Stage Deep Learning for Medical Image Recognition 这篇文章中,作者针对这种场景提出了解决方法。

这样训练出的网络

给定的参考引用中未提及CONV1中PE Set的作用相关内容,因此无法直接依据引用回答该问题。不过,在卷积神经网络(CNN)的硬件加速设计中,PE(Processing Element,处理单元)Set通常是一组用于执行卷积运算的处理单元。在CONV1(通常指第一层卷积层)里,PE Set可能具有以下作用: - **加速卷积运算**:PE Set可以并行处理卷积操作,通过多个处理单元同时工作,大大提高卷积计算的速度,减少计算时间。 - **数据复用**:如问题描述中提到输入特征的复用,PE Set可以有效地复用输入特征和卷积核数据,减少数据的重复读取,降低内存带宽需求,提高系统效率。 - **提高资源利用率**:将多个处理单元组织成PE Set,可以更好地利用硬件资源,避免资源闲置,使硬件在处理卷积任务时更加高效。 ### 代码示例 以下是一个简单的Python代码示例,模拟了PE Set并行处理卷积运算的过程: ```python import numpy as np # 模拟输入特征 input_features = np.random.rand(10, 10) # 模拟卷积核 kernel = np.random.rand(3, 3) # 模拟PE Set,假设PE Set中有4个处理单元 pe_set_size = 4 # 卷积运算函数 def convolution(inputs, kernel): input_height, input_width = inputs.shape kernel_height, kernel_width = kernel.shape output_height = input_height - kernel_height + 1 output_width = input_width - kernel_width + 1 output = np.zeros((output_height, output_width)) for i in range(output_height): for j in range(output_width): patch = inputs[i:i+kernel_height, j:j+kernel_width] output[i, j] = np.sum(patch * kernel) return output # 并行处理 output = convolution(input_features, kernel) print("卷积结果形状:", output.shape) ```
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值