什么是卷积?(含如何实现卷积源码)

简介: 什么是卷积?(卷积简单实现源码)

什么是卷积:
在卷积神经网络中,卷积核(Kernel)也称为滤波器(Filter)或权重(Weight),是一种用于特征提取和特征映射的重要组件。卷积核是由学习算法自动学习得到的,可以看作是一种特征检测器,用于检测输入数据中的某些特定特征。

    卷积核通常是一个二维的矩阵,其大小可以根据输入数据的大小和特征需求进行调整。卷积核可以有一个或多个通道,每个通道对应着输入数据的不同特征维度。在卷积操作中,卷积核通过对输入数据进行卷积运算,将输入数据中的每个特征映射到输出数据的相应特征中。

    卷积核的权重值是在训练过程中自动学习得到的,学习算法的目标是通过不断调整卷积核的权重,使得网络能够更好地提取输入数据中的特征信息。在卷积神经网络中,卷积核的数量和大小可以根据网络的复杂度和任务需求进行调整。通常情况下,随着卷积核数量的增加和卷积层数的加深,网络的特征提取能力和分类准确率也会相应提高。

    在卷积神经网络的训练过程中,学习算法通常采用反向传播算法来更新卷积核的权重。反向传播算法可以根据损失函数的梯度信息,计算出每个卷积核的权重更新值,从而不断优化网络的性能。

    除了在卷积层中使用卷积核,卷积核还可以用于池化层和全连接层中,用于特征提取和降维等操作。

    在池化层中,卷积核通常是一个正方形矩阵,其大小和步长可以根据网络的设计需求进行调整,常见的卷积核大小为2x2或3x3,步长为2。池化层中的卷积核通过对输入数据进行卷积运算,将输入数据中的一定区域进行池化操作,从而得到一个新的特征图。

    在全连接层中,卷积核通常是一个一维向量,其大小和数量可以根据网络的设计需求进行调整。全连接层中的卷积核通过对输入数据进行卷积运算,将输入数据映射到输出数据的相应维度上,从而实现特征提取和降维操作。

    总的来说,卷积核是卷积神经网络中的核心组件之一,它可以应用于卷积层、池化层和全连接层中,用于特征提取、特征映射、降维等操作。卷积核的大小、数量和步长等参数可以根据网络的设计需求进行调整,从而提高网络的性能和效果。

卷积实现源码:


import numpy as np

def Conv(x,kernel):
    hx,wx = x.shape# Hx为待处理矩阵的高(行),Wx为待处理矩阵的宽(列)
    hk,wk = kernel.shape# Hk为卷积核的高(行),Wk为卷积的宽(列)

    out = np.zeros((hx - hk + 1,wx - wk + 1)) #0矩阵
    for i in range(hx - wk + 1):
        for j in range(wx - wk + 1):
            out[i][j] = np.sum(np.multiply(kernel,x[i:i+hk,j:j+wk]))
    return out



def main():
    x = np.array([[3, 0, 1, 2, 7, 4],
                [1, 5, 8, 9, 3, 1],
                [2, 7, 2, 5, 1, 3],
                [0, 1, 3, 1, 7, 8],
                [4, 2, 1, 6, 2, 8],
                [2, 4, 5, 2, 3, 9]])
    kernel = np.array([[1,0,-1],
                       [1,0,-1],
                       [1,0,-1]])
    output = Conv(x,kernel)
    print(output)
    pass


if __name__ == '__main__':
    main()

运行效果:
image.png

目录
相关文章
|
机器学习/深度学习
普通卷积、分组卷积和深度分离卷积概念以及参数量计算
普通卷积、分组卷积和深度分离卷积概念以及参数量计算
1203 0
普通卷积、分组卷积和深度分离卷积概念以及参数量计算
|
1月前
|
机器学习/深度学习
深度学习笔记(十二):普通卷积、深度可分离卷积、空间可分离卷积代码
本文探讨了深度可分离卷积和空间可分离卷积,通过代码示例展示了它们在降低计算复杂性和提高效率方面的优势。
51 2
深度学习笔记(十二):普通卷积、深度可分离卷积、空间可分离卷积代码
|
3月前
|
机器学习/深度学习 Shell 计算机视觉
一文搞懂 卷积神经网络 卷积算子应用举例 池化 激活函数
这篇文章通过案例详细解释了卷积神经网络中的卷积算子应用、池化操作和激活函数,包括如何使用卷积算子进行边缘检测和图像模糊,以及ReLU激活函数如何解决梯度消失问题。
|
3月前
|
机器学习/深度学习 编解码 计算机视觉
CNN 中卷积层和池化层的作用
【8月更文挑战第15天】
204 0
|
6月前
|
机器学习/深度学习 PyTorch 算法框架/工具
卷积神经元网络中常用卷积核理解及基于Pytorch的实例应用(附完整代码)
卷积神经元网络中常用卷积核理解及基于Pytorch的实例应用(附完整代码)
127 0
|
机器学习/深度学习 存储 编解码
深度学习基础入门篇[9.3]:卷积算子:空洞卷积、分组卷积、可分离卷积、可变性卷积等详细讲解以及应用场景和应用实例剖析
深度学习基础入门篇[9.3]:卷积算子:空洞卷积、分组卷积、可分离卷积、可变性卷积等详细讲解以及应用场景和应用实例剖析
209 0
|
机器学习/深度学习 编解码 算法
【Pytorch神经网络理论篇】 32 PNASNet模型:深层可分离卷积+组卷积+空洞卷积
PNASNet模型是Google公司的AutoML架构自动搜索所产生的模型,它使用渐进式网络架构搜索技术,并通过迭代自学习的方式,来寻找最优网络结构。即用机器来设计机器学习算法,使得它能够更好地服务于用户提供的数据。该模型在ImageNet数据集上Top-1准确率达到82.9%,Top-5准确率达到96。2%,是目前最好的图片分类模型之一。
209 0
|
机器学习/深度学习 数据挖掘 计算机视觉
卷积神经网络基础--输入层、卷积层
局部连接和权值共享是卷积层的两个最主要的特征:为提取数据的特征信息,需把数据中潜在的具有相关性的信息抽象化,便于进行以上两个特征操作。
390 0
卷积神经网络基础--输入层、卷积层
|
机器学习/深度学习 数据可视化 计算机视觉
深入卷积神经网络:高级卷积层原理和计算的可视化
深入卷积神经网络:高级卷积层原理和计算的可视化
196 0
深入卷积神经网络:高级卷积层原理和计算的可视化
|
机器学习/深度学习 数据可视化 数据处理
1D卷积入门:一维卷积是如何处理数字信号的
1D卷积入门:一维卷积是如何处理数字信号的
597 0
1D卷积入门:一维卷积是如何处理数字信号的