【问题标题】:Plugging in pre-trained model on top of embeddings from another pre-trained model, how to make input dimensions work?在另一个预训练模型的嵌入之上插入预训练模型,如何使输入维度起作用?
【发布时间】:2021-11-14 02:45:11
【问题描述】:

我正在尝试在另一个模型输出的嵌入之上放置一个预训练模型(例如 VGG、AlexNet 等)。我认为对我来说唯一不清楚的部分是如何使输入维度与新添加的预训练模型一起工作?具体来说:

  1. 从预训练模型 1 中获取图像嵌入
  2. 将它们插入预训练模型 2 以执行图像分类
  3. 预训练模型 2 需要特定形状 [3, x, x] 的 RGB 图像,而我只有形状 [512] 的嵌入。

有什么方法可以让它工作,这样我就可以将已经处理的图像嵌入输入到另一个预训练模型中并成功执行图像分类?

【问题讨论】:

  • 如果您已经拥有model 1 提供的嵌入,那么您不需要使用 CNN。 CNN 旨在为您的任务从图像输入而非向量嵌入中提取相关特征。
  • 我明白了,是否有任何预训练的网络可以作用于向量嵌入。我正在尝试找到适合我的分类任务的最佳架构。
  • 一个完全连接的网络就可以了。

标签: machine-learning deep-learning neural-network pytorch computer-vision


【解决方案1】:

如果您已经从图像中提取了嵌入,则不应考虑使用 CNN。典型的 CNN 架构由特征提取器(卷积层)和分类器(全连接层)组成。卷积部分的目的是从图像中提取相关信息,而后一部分将这些信息映射以完成所需的任务(例如分类任务)。

在您的情况下,使用全连接层作为model 2 是有意义的。

【讨论】:

    猜你喜欢
    • 2018-09-25
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多