【问题标题】:Can you use an embedding + CNN model for both text and image classification?您可以将嵌入 + CNN 模型用于文本和图像分类吗?
【发布时间】:2020-07-02 02:15:35
【问题描述】:

我有一个tensorflow CNN 模型,带有一个用于文本分类的嵌入层,如下所示:

 model = tf.keras.Sequential([
      Embedding(vocab_size, embedding_dim, input_length=maxlen, weights=[embedding], trainable=False),
      Conv1D(128, 5, activation='relu'),
      GlobalMaxPooling1D(),
      Dense(10, activation='relu'),
      Dense(1, activation='sigmoid')
    ])

我的同事坚持认为这是可行的,但我发现 post 表示这是不可行的。我将 CNN 理解为可以用于文本和图像输入的算法,但我的理解是您不能将 same CNN 模型用于文本输入和图像输入:文本将使用 Conv1D 和图片,Conv2D

链接的帖子提到:

  1. 使用 CNN 模型处理图像。
  2. 使用其他模型处理文本......我所说的 CNN 通常是指在句子中的单词上运行的 1D CNN。
  3. 合并 2 个潜在空间,这两个潜在空间提供有关图像的信息和 文本。
  4. 运行最后几个 Dense 层进行分类。

如果我走在正确的轨道上,我该如何构建两个子模型(一个用于文本,另一个用于图像分类)并合并潜在空间。谢谢!

【问题讨论】:

    标签: tensorflow machine-learning image-processing nlp conv-neural-network


    【解决方案1】:

    诚然,解决这个问题的方法是构建两个不同的模型,并在密集层之前连接它们的输出。

    你可以先看这篇非常好的文章(虽然里面是关于MLP + CNN,但逻辑还是一样的):https://www.pyimagesearch.com/2019/02/04/keras-multiple-inputs-and-mixed-data/

    因此,那里提到的解决方案确实是可行的,也是可行的。

    【讨论】:

      猜你喜欢
      • 2022-12-03
      • 1970-01-01
      • 2021-06-16
      • 2011-02-09
      • 2018-05-11
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      • 2018-01-26
      相关资源
      最近更新 更多