使用 TensorFlow CNN 提取特征

数据挖掘 Python 神经网络 特征提取
2021-10-08 11:27:10

我正在尝试提取图像集的特征。我正在使用来自这个站点的 CNN 。

谁能告诉我如何使用 CNN 对图像进行特征提取?我找了很多地方。但是没有地方清楚地提到特征提取部分。

3个回答

现在使用 Github 上的 tensorflow/models 存储库可以更轻松地在 TensorFlow 中提取 CNN 特征。这里有预训练的 VGG、ResNet、Inception 和 MobileNet模型

我使用以下包装器在 TensorFlow 中方便地提取特征。您可以只为该工具提供图像列表。它将预处理图像并通过网络前馈提取特征。您可以指定要提取的图层名称,然后将它们保存到 HDF5 或 pickle。

https://github.com/tomrunia/TF_FeatureExtraction

实际上,在你完成训练之后,所有这些卷积层的权重就是你提取的特征图。

您可以尝试可视化这些权重以及激活以获得完整的特征图。这是您可以参考的指南。

参考

https://github.com/fchollet/keras/issues/12

http://cs231n.github.io/understanding-cnn/

你可以把卷积想象成信息的混合。想象一下将两个装满信息的桶倒入一个桶中,然后根据特定规则进行混合。

为了提取图像的特征,CNN 在每个图像上使用所谓的内核,并根据网络中的传播调整内核。然后在整个图像上卷积一个内核以产生所谓的特征图。您可以将特征图可视化为如下所示:

内核过图像

随着层变得越来越深,网络获得了越来越大的特征提取知识。初始层负责图像的较小细节,更深层能够识别更大的图片。adeshpande3的这些图像对每一层发生的事情给出了非常良心的解释。

初始层 更深层

您可以参考timdettmers 的博客,然后再参考Adesh pande 的博客他们对 CNN 给出了清晰的解释。