여기에 다중 모달 네트워크를 쓰려고합니다. 올바른 방법을 사용하고 있는지 확실하지 않습니다.다중 모달 신경망 훈련 손실이 감소하지 않습니다
두 개의 네트워크가 있습니다. 여기서 network_1은 이미지를 입력으로 사용하고 network_2는 완전히 연결된 네트워크로 연결 위치 (숫자는 -0.7 - 0.7)로 가득 찬 17x1 벡터를 입력으로 사용합니다. 두 네트워크의 최종 완전 연결된 레이어를 연결하고 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