我有一个既包含图像又包含文本特征的数据集。训练数据的标签是一个二维数组,形状与输入图像相同,为1s / 0s。
因此,基本上,培训输入是:
(X,Y)
的图像,(Z,)
的其他功能集(即文本功能)。训练标签的形状为(X,Y)
。
我正在尝试使用Tensorflow / Keras在此数据上训练模型。我知道我可以训练输入大小为(X* Y) + Z
的模型,但是我读到这不是处理图像/附加数据特征混合的最佳方法。
所以我的问题是:
1)我将如何设置模型以处理混合输入类型?
2)由于我的输出与图像大小相同,是否需要定义一个(X * Y)
大小的输出层?我将如何指定输出层,使其可以采用多个值,即输出中的任何/多个位置可以为1或0?
答案 0 :(得分:2)
一种方法是定义两个独立的子模型来处理文本和图像数据,然后合并这些子模型的输出以创建最终模型:
--------------- ---------------
- 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 -
-----------
每个框对应一个或多个层,尽管我在每个框中都提到了一些建议,但您可能有不同的方法来实现它们并设置它们的参数。