首页 文章

Keras CNN:除了图像之外,还将文本作为附加输入添加到CNN

提问于
浏览
0

我正在尝试训练CNN进行对象分类 . 因此,除了图像之外,我还想输入一些文本功能 .

我在这里找到了一个这样做的例子http://cbonnett.github.io/Insight.html

作者构建了两个模型,一个用于图像识别的CNN和一个用于文本的普通ANN . 最后,他将它们合并在一起并应用softmax激活 . 因此,他的管道如下:

merged = Merge([cnn_model, text_model], mode='concat')

### final_model takes the combined models and adds a sofmax classifier to it
final_model = Sequential()
final_model.add(merged)
final_model.add(Dropout(do))
final_model.add(Dense(n_classes, activation='softmax'))

我想知道这是否是组合图像文本的首选方法,或者是否有其他方法可以使用Keras解决此类任务?换句话说,是否有可能(或甚至有意义)将文本作为输入直接包含在CNN中,以便CNN处理图像和文本?

2 回答

  • 1

    你是在正确的轨道,但是你也可以使用CNN来处理文本,它通常是使用RNN等的更快的替代方案 . 但是 you can't use the same CNN to process both text and images ,它们必须是不同的,因为文本是1D而图像是2D输入,更不用说它们来自来自单独的源代码分发 . 所以,如果你愿意,你仍然会得到2个子模型:

    • 使用CNN模型处理图像 .

    • 使用其他模型(RNN,ANN,CNN或仅一个热门编码字等)处理文本 . 通过CNN,我的意思是通常是一个CNN,在句子中的单词上运行 .

    • 合并2个潜在空间,用于说明有关图像和文本的信息 .

    • 运行最后几个密集层进行分类 .

  • 1

    让我这样解释一下 . 您首先进行卷积,聚合数据进入神经网络 . 不是使用一个卷积,而是有两个卷积,一个用于文本,一个用于图像 . 唯一的附加步骤是在 balancer 卷积结果后连接两条信息 . 我建议你在这个链接上查看我的代码 . 此代码是关于在 Headers 和描述上使用CNN并将它们连接在一起 . 与您的情况类似,您将文本数据作为我的“描述”,将图像数据作为我的“ Headers ” .

    https://www.kaggle.com/jingqliu/fasttext-conv2d-with-tf-on-title-and-description

    它是用张量流写的,但我相信你会得到这个想法!

相关问题