多模态神经网络训练损失没有减少

时间:2017-09-06 17:51:47

标签: python tensorflow neural-network

我正在尝试在这里写一个多模态网络,我不确定我是否采用了正确的方式。

我有两个网络,其中,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'))

准确度和损失似乎没有减少。我现在正在玩不同的学习率。

但是,还有什么我应该尝试的吗? 我无法找到多模态神经网络的示例架构。我如何尝试不同的架构?

1 个答案:

答案 0 :(得分:1)

一些提示:

  • 您确定它不是数据问题吗?尝试在输入和目标标签进入网络进行培训之前对其进行可视化/检查,并确保输入及其相应的标签有意义。这听起来很明显,但我想提及它的错误太常见了。

  • 尝试使用Functional API(而不是多个Sequential模型)定义如图所示here的多输入体系结构

  • 尝试使用您的数据的一个小子样本,看看您的模型是否适合它(它应该),否则您的训练方式可能出现问题。