我正在尝试在这里写一个多模态网络,我不确定我是否采用了正确的方式。
我有两个网络,其中,network_1使用图像作为输入,而network_2是完全连接的网络,将17x1向量作为输入,充满关节位置(数字范围为-0.7 - 0.7)。我连接两个网络的最终完全连接层,并输出7个类的最终层。
CODE:
41 #-------NETWORK 1---------------
42 network1 = Sequential()
43 #Dense layers - 1st param is output
44 network1.add(Dense(2048, input_shape=(8500,),name="dense_one"))
45 network1.add(Dense(2048,activation='sigmoid',name = "dense_two"))
46 network1.add(Dense(1000,activation='sigmoid',name = "dense_three"))
47 network1.add(Dense(100,activation = 'relu',name = "dense_four"))
48
49 for l in network1.layers:
50 print l.name, l.input_shape , "=======>", l.output_shape
51
52 print network1.summary()
53
54 #-------- NETWORK 2-----------
55
56 network2 = Sequential()
57 network2.add(Conv2D(32, kernel_size=(3,3), activation = 'relu', input_shape = (224,224,3)))
58 network2.add(Conv2D(64, kernel_size = (3,3)))
59 network2.add(MaxPooling2D(pool_size=(2,2)))
60 network2.add(Dropout(0.5))
61
62 network2.add(Dense(100,activation='sigmoid',name ="network2_three"))
63 network2.add(Flatten())
64
65 #-------------------MERGED NETWORK------------------#
66
67 model = Sequential()
68 model.add(Merge([network1,network2],mode = 'concat'))
准确度和损失似乎没有减少。我现在正在玩不同的学习率。
但是,还有什么我应该尝试的吗? 我无法找到多模态神经网络的示例架构。我如何尝试不同的架构?
答案 0 :(得分:1)
一些提示:
您确定它不是数据问题吗?尝试在输入和目标标签进入网络进行培训之前对其进行可视化/检查,并确保输入及其相应的标签有意义。这听起来很明显,但我想提及它的错误太常见了。
尝试使用Functional API(而不是多个Sequential模型)定义如图所示here的多输入体系结构
尝试使用您的数据的一个小子样本,看看您的模型是否适合它(它应该),否则您的训练方式可能出现问题。