如何将从 cnn 密集层提取的特征传递给另一个 cnn?

How to pass feature extracted from cnn dense layer to another cnn?

我实现了一个用于多标签图像分类的 cnn-1。然后我从密集层中提取特征并得到一个形状。 [600,1024]

600 = 图片总数

我在上面使用了 PCA 并得到了形状 [600,1]。

现在我将其传递给 svm,准确率非常低 20%。

我想将其传递给 cnn 并检查准确性。请帮助我。

您可能需要重新考虑很多事情。首先,PCA 应该提出一个必须承担表示 1024 个数字的负担的数字。这在天文学上是困难的,您可能不得不重新考虑将数据投影到如此低的维度。 CNN 永远不会使用单个数字作为输入。要回答您的评论,要将 cnn1 功能传递给 cnn2,您不会展平向量(这意味着您不会得到形状为 (600, 1024) 的输出,而是像 (600,3,32,32) 这样的数字,其中 3 代表输入过滤器(即带有颜色的图片中的 R G B,这些 32 代表 2D 情况——因为你提到图像分类,我假设 2D convs——图像大小)。卷积层允许你定义输出过滤器。这是我们的第二个数字示例。卷积后的图像大小取决于其他参数,如内核大小和步幅,现在不要担心。关键是如果你想让你的图像在你的第一个之后通过第二个conv层,你需要确保你的第二个 conv 层接受第一个 conv 层的输出过滤器作为输入过滤器。这就是我根据提供的数据可以告诉你的全部。再一次,使用 PCA 从维度 1024 到维度 1 不是推荐,至少我不是。