图像卷积后的大小计算公式

博客主要定义了卷积操作中的几个参数,包括输入图片大小W*W、Filter(卷积核)大小F*F、步长Step、padding(填充)的像素数P,还说明了填充后图像大小变化,最后提及输出图片大小为N * N。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先定义几个参数

  • 输入图片大小 W*W
  • Filter(卷积核)大小F*F
  • 步长 Step
  • padding(填充)的像素数P,P=1就相当于给图像填充后图像大小为W+1 *W+1
  • 输出图片的大小为N * N

  N=\left \lfloor \frac{W-F+2P}{Step} \right \rfloor+1    

 

 

### 卷积神经网络中图像尺寸的计算方法 卷积神经网络(Convolutional Neural Network, CNN)中的卷积层输出尺寸可以通过特定公式进行计算。以下是详细的计算过程以及公式的推导。 #### 输出尺寸计算公式 对于输入图像 \( W \times H \),经过卷积操作后的输出尺寸可以由以下公式得出: \[ W_{out} = \frac{W_{in} + 2P - K}{S} + 1 \] 其中: - \( W_{in} \): 输入特征图的宽度。 - \( P \): 填充(Padding)的数量,通常为0或指定值。 - \( K \): 卷积核的大小(即窗口大小),例如 \( 5 \times 5 \)[^2]。 - \( S \): 步幅(Stride),表示每次滑动的距离。 - \( W_{out} \): 输出特征图的宽度。 同理,高度方向上的输出尺寸也可以按照相同的方式计算: \[ H_{out} = \frac{H_{in} + 2P - K}{S} + 1 \] 如果步幅和填充参数不同,则需分别代入对应的数值。 #### 示例代码实现 下面是一个简单的 Python 实现来验证上述公式的结果: ```python def calculate_output_size(input_size, kernel_size, padding=0, stride=1): """ Calculate the output size of a convolution layer. Parameters: input_size (int): The width or height of the input feature map. kernel_size (int): Size of the convolution kernel. padding (int): Padding added to both sides of the input. stride (int): Stride length for sliding window. Returns: int: Output size after applying convolution operation. """ return ((input_size + 2 * padding - kernel_size) // stride) + 1 # Example usage input_width = 32 # Input image width/height kernel_size = 5 # Convolution kernel size padding = 2 # Zero-padding on each side stride = 1 # Sliding step output_width = calculate_output_size(input_width, kernel_size, padding, stride) print(f"Output Width: {output_width}") ``` 运行此代码会得到相应的输出尺寸结果。 #### 特殊情况讨论 当卷积大小被简化描述为单个数字时(如 “5” 而不是 “5x5”),这实际上意味着该卷积核的高度和宽度相等。因此,在实际应用中,“5” 可以理解为正方形卷积核的一个边长。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值