基于图像和文本特征的 TensorFlow 训练模型,具有多类输出

Haw*_*001 2 python machine-learning keras tensorflow

我有一个包含图像和文本特征的数据集。训练数据的标签是一个二维数组,形状与输入图像相同,均为 1/0。

基本上,训练输入是:

  • 输入形状为 的图像(X,Y)
  • 带有 shape 的附加特征集(即文本特征)(Z,)

训练标签的形状为(X,Y)

我正在尝试使用 Tensorflow/Keras 在此数据上训练模型。我知道我可以训练一个输入大小为 的模型(X* Y) + Z,但我读到这不是处理混合图像/附加数据特征的最佳方法。

所以我的问题是:

1)如何设置模型来处理混合输入类型?

2)由于我的输出与图像大小相同,我是否需要定义(X * Y)大小的输出层?我如何指定输出层,以便它可以采用多个值,即输出中的任何/多个位置可以是 1 或 0?

tod*_*day 5

一种方法是定义两个独立的子模型来处理文本和图像数据,然后合并这些子模型的输出以创建最终模型:

---------------        ---------------
- Input Image -        - Input Text  -
---------------        ---------------
       |                       |
       |                       |
       |                       |
---------------        ---------------------  
- Image Model -        -     Text Model    -
- (e.g. CNNs) -        - (e.g. Embeddings, -
---------------        -  LSTM, Conv1D)    -
       \               ---------------------
        \                     /
         \                   /
          \                 /
           \               /
            \             /
             \           /
              \         /
               \       /
           ----------------------
           -      Merge         -
           - (e.g. concatenate) -
           ----------------------
                     |
                     |
                     |
           ----------------------
           -      Upsample      -
           - (e.g. Dense layer, -
           -   transpose-conv)  -
           ----------------------
                     |
                     |
                     |
                -----------
                -  Output -
                -----------
Run Code Online (Sandbox Code Playgroud)

每个框对应一个或多个层,您可能有不同的方法来实现它们并设置它们的参数,尽管我在每个框中提到了一些建议。