ここでマルチモーダルネットワークを作成しようとしています。マルチモーダルニューラルネットワークトレーニングの損失が減少していない
2つのネットワークがあり、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'))
精度と損失が減少していないようです。私は今、さまざまな学習率で遊んでいます。
しかし、他にも試してみるべきことがありますか? 私はマルチモーダルニューラルネットワークのためのアーキテクチャの例を見つけることができません。異なるアーキテクチャーを試してみるにはどうすればいいですか?
シグモイド出力で隠れ層を使用しないでください。これにより、ぼやけたグラデーションが生成されます。代わりにReLUを使用してください。 –
うん!それは意味をなさない。確かに、私はそれがどのように動作するかをあなたに知らせる。ありがとう! – deeplearning