Python中的CNN算法代码2025年1月5日 | 阅读6分钟 卷积神经网络算法 (CNN) 是一种深度学习算法,非常适合图像处理。它们由卷积层、池化层和全连接层组成。 卷积层在卷积神经网络 (CNN) 中起着至关重要的作用。这些层使用滤波器来帮助提取图像特征,如边缘、纹理和形状。滤波器是应用于输入图像的小矩阵,以滑动窗口的方式进行操作。 卷积层输出一个特征图,其中包含滤波器对输入图像的响应。 池化层用于对卷积层创建的特征图进行下采样。这有助于降低网络的计算成本,并使其对输入图像中的微小平移和旋转更加不变。 CNN 架构CNN 有多种架构,但首先,我们来看看基本架构。 卷积神经网络 (CNN) 由三个层组成:卷积层、全连接 (FC) 层和池化层。这些层以堆叠的方式排列,形成 CNN 架构。除了这三个层之外,dropout 层和激活函数是另外两个重要的参数。这些参数定义如下。 该架构由不同的层组成,从卷积层开始。 卷积层卷积层,也称为 conv 层,是卷积神经网络 (CNN) 的基本单元。它在捕获网格状数据(如图像)中的局部模式和特征方面起着重要作用。让我们快速了解一下卷积层的作用及其主要组成部分。 神经网络的第一步是使用称为卷积的数学运算从输入图像中提取特征。在此层中,一个特定大小 (MxM) 的滤波器与输入图像进行卷积。滤波器在输入图像上滑动,并计算滤波器与对应于滤波器大小 (MxM) 的输入图像部分之间的点积。此过程有助于从输入图像中提取关键特征。 输入在 CNN 中经过卷积运算,然后将结果传递到下一层。
池化层在卷积神经网络 (CNN) 中,典型的结构涉及卷积层后跟池化层。池化层减小了卷积特征图的大小,从而降低了计算成本。这可以通过减少层之间的连接数量来实现,并且它独立地作用于每个特征图。有几种可用的池化操作类型。
池化层连接卷积层和全连接 (FC) 层。其主要目的是总结卷积层生成的特征。通过池化,CNN 模型可以独立地识别和泛化这些特征。它不仅有助于特征抽象,还减少了网络中的计算需求。 全连接层FC 层由每个神经元的权重和偏置组成。FC 层中的每个神经元都连接到前一层中的每个神经元。在训练期间,会学习权重和偏置。 在进入全连接层之前,从之前的卷积层和池化层获得的特征图被展平成一维向量,以匹配 FC 层期望的一维输入。 ReLU 等激活函数应用于 FC 层中的展平输入,引入非线性并使网络能够捕获复杂模式。 全连接 (FC) 层在分类过程中至关重要。它们负责提取高级特征,并根据先前层中学到的特征做出决策。这些层的输出通常用于确定不同类别的概率或回归值,具体取决于手头的任务。 DropoutDropout 是一种常用于神经网络(包括卷积神经网络 (CNN))的技术,用于对抗过拟合。过拟合发生在模型过度专门化于从训练数据中学习,并且无法很好地泛化到未见过的数据时。 过拟合是深度学习模型中预期出现的问题,其中神经网络学习训练数据中的噪声或特定模式,而这些模式无法泛化到新数据。Dropout 被用于解决此问题。 在 dropout 中,在训练过程中,层中的指定比例的神经元(节点)会被随机“丢弃”或禁用。这意味着这些神经元在特定的训练迭代中不参与前向或后向传播。 Python 中 CNN 算法的实现以下是说明 Python 中 CNN 算法实现的简短代码片段 示例输出 Epoch 1/10 1563/1563 [==============================] - 63s 39ms/step - loss: 1.4819 - accuracy: 0.4600 - val_loss: 1.1862 - val_accuracy: 0.5725 Epoch 2/10 1563/1563 [==============================] - 58s 37ms/step - loss: 1.1218 - accuracy: 0.6045 - val_loss: 1.0347 - val_accuracy: 0.6363 Epoch 3/10 1563/1563 [==============================] - 59s 38ms/step - loss: 0.9765 - accuracy: 0.6589 - val_loss: 0.9404 - val_accuracy: 0.6690 Epoch 4/10 1563/1563 [==============================] - 58s 37ms/step - loss: 0.8796 - accuracy: 0.6933 - val_loss: 0.9010 - val_accuracy: 0.6878 Epoch 5/10 1563/1563 [==============================] - 58s 37ms/step - loss: 0.8060 - accuracy: 0.7206 - val_loss: 0.8983 - val_accuracy: 0.6904 Epoch 6/10 1563/1563 [==============================] - 56s 36ms/step - loss: 0.7441 - accuracy: 0.7402 - val_loss: 0.8833 - val_accuracy: 0.6990 Epoch 7/10 1563/1563 [==============================] - 57s 37ms/step - loss: 0.6917 - accuracy: 0.7587 - val_loss: 0.8629 - val_accuracy: 0.7065 Epoch 8/10 1563/1563 [==============================] - 57s 37ms/step - loss: 0.6466 - accuracy: 0.7721 - val_loss: 0.8479 - val_accuracy: 0.7154 Epoch 9/10 1563/1563 [==============================] - 58s 37ms/step - loss: 0.6065 - accuracy: 0.7848 - val_loss: 0.8652 - val_accuracy: 0.7150 Epoch 10/10 1563/1563 [==============================] - 58s 37ms/step - loss: 0.5613 - accuracy: 0.8031 - val_loss: 0.8726 - val_accuracy: 0.7095 313/313 - 3s - loss: 0.8726 - accuracy: 0.7095 - 3s/epoch - 9ms/step Test accuracy: 0.7095000147819519 结论Python 中的 CNN 在计算机视觉和机器学习领域产生了重大影响。它们在图像识别、目标检测和分割等各种应用中都非常有效。然而,成功使用 CNN 需要大量数据、计算资源以及超参数调整和模型解释方面的专业知识。随着深度学习的不断发展,CNN 预计将继续成为现代机器学习应用的基础。 |
Python 中的 map() 函数是一个强大的工具,用于将函数应用于可迭代对象(如列表或元组)中的每个项,并返回一个带有结果的新可迭代对象。虽然它通常与单个可迭代对象一起使用,但您是否知道它可以……
阅读 4 分钟
简介 有时,我们需要存储大量数据并快速访问它。但是,管理许多文件可能会很麻烦。这时 HDF5 文件就派上用场了。它们允许我们将大量数据存储在高格式二进制中,确保...
阅读 4 分钟
在 Python Web 开发方面,Django 和 Flask 等框架最值得关注。然而,如果你急需一个轻巧、简单但功能强大的工具,请注意 CherryPy。CherryPy 本质上是一个 Web...
阅读 4 分钟
简介 因此,Python 的简单性及其灵活性使其成为各种计算机语言中最适合入门的语言。另一个可以帮助您提高 Python 感知的课堂项目是“猜数字”游戏。本文将探讨……
阅读 4 分钟
文档是存储在计算机上特定标题下的数据或详细信息的汇编。它可能是记录、图片、电影、软件或任何其他类型的信息。文档可能附带显示其扩展名的附件,例如 .txt,...
5 分钟阅读
Python 中的导入充当了一个主要系统,用于在程序中访问来自不同文档、模块或包的代码。它们能够重用代码,并有助于将大型项目组织成合理的单元。让我们分解 Python 导入的关键部分:是什么……
阅读 8 分钟
?在以下教程中,我们将学习在 Python 编程语言中从文本文件中删除特定行的方法。那么,让我们开始吧。从文本文件中删除特定行 假设我们有一个名为 TextFile.txt 的文本文件,其中包含一些随机内容。我们...
5 分钟阅读
决策树是一种多功能且广泛使用的机器学习算法。它们既可用于分类任务,也可用于回归任务,使其成为数据分析和预测建模的有价值的工具。在本文中,我们将深入探讨决策树的世界,探讨它们是什么...
阅读 6 分钟
Slack 简介在当今快节奏的世界中,Slack 已成为团队沟通的首选工具。这主要归因于 Slack 能够与各种应用程序和服务实现集成。这可以通过使用名为“Incoming Webhooks”的服务实现,它们是...
7 分钟阅读
? 引言 可以使用 import 语句或 subprocess 模块从另一个文件中运行 Python 文件。通过使用 import,可以将其功能集成到另一个文件中,从而立即访问该文件的变量和函数。或者,并且在……
7 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India