我一整天都在用谷歌搜索,试图在 Keras 中找到两个并行数据集的功能输入示例,但我找不到。
我的问题是我有数据集 1,一组执行不同动作的人的图像。它的格式为 csv,如下所示:
image_url,class
example1.png,BRUSH_TEETH
example2,BRUSH_TEETH
...
example10000.png,DANCING
Run Code Online (Sandbox Code Playgroud)
我将预处理这些并将它们全部设为 64x64。我的第二个数据集将是跳跃运动数据,其中每一行都是与数据集 1 中的相应行同时捕获的信息
(忽略列名和值,我不确定它们会是什么样子,因为我还没有收集数据,但它们将是一行并平行于上述数据集1)
x,y,z,a,b,c,d,class
1,2,3,4,5,6,7,BRUSH_TEETH
8,9,10,3,1,3,4,BRUSH_TEETH
...
1,2,3,4,5,6,7,DANCING
Run Code Online (Sandbox Code Playgroud)
我一直在阅读有关函数式 API 的信息,似乎我可以通过 CNN 运行来自 dataset1 的数据对象,同时运行来自 dataset2 的相同数据对象,例如通过深度 MLP。然后,使用合并或连接,将最终层的两个输出带到另一个深度 MLP,然后最终将这个最终合并的模型链接到一个输出
暂时忘记CNN,API给出了一个简单的合并示例如下:
import keras
input1 = keras.layers.Input(shape=(16,))
x1 = keras.layers.Dense(8, activation='relu')(input1)
input2 = keras.layers.Input(shape=(32,))
x2 = keras.layers.Dense(8, activation='relu')(input2)
# equivalent to added = keras.layers.add([x1, x2])
added = keras.layers.Add()([x1, x2])
out = keras.layers.Dense(4)(added)
model = keras.models.Model(inputs=[input1, input2], outputs=out)
Run Code Online (Sandbox Code Playgroud)
我的问题是,我需要将 csv 中包含的图像输入 input1(以 CNN 的形式),同时向 input2 输入包含 Leap Motion 数据的第二个数据集中的相关行。PS:在上面我将如何在输出前与两个密集层合并后继续模型?会不会只是这样:
x3 …Run Code Online (Sandbox Code Playgroud)