2017-09-06 7 views
0

여기에 다중 모달 네트워크를 쓰려고합니다. 올바른 방법을 사용하고 있는지 확실하지 않습니다.다중 모달 신경망 훈련 손실이 감소하지 않습니다

두 개의 네트워크가 있습니다. 여기서 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')) 

정확성과 손실이 감소하지 않는 것 같습니다. 나는 지금 다른 학습 속도로 놀고있다.

하지만 제가 시도해야 할 것이 있습니까? 멀티 모달 신경 네트워크의 예제 아키텍처를 찾을 수 없습니다. 다른 아키텍처로 어떻게 실험합니까?

+1

시그마 효과가있는 숨겨진 레이어는 사용하지 마십시오. 이것은 사라지는 그라데이션을 생성합니다. 대신 ReLU를 선호하십시오. –

+0

예! 그건 의미가 있습니다. 확실한 방법으로 업데이트 드리겠습니다. 감사! – deeplearning

답변

1

몇 가지 팁 :

  • 당신이 그것을 데이터 문제가 아니에요 확실 해요? 입력 및 대상 레이블이 교육을 받기 위해 네트워크에 들어가기 직전에 시각화/검사하고 입력 및 해당 레이블이 의미가 있는지 확인하십시오. 그것은 명백하게 들리지만, 내가 언급하기를 너무 흔한 오류입니다. 기능적 API

  • 는 데이터의 작은 표본을 사용하여 시도하고 모델을 overfits 여부를 확인 (이해야한다() 대신 여러 순차 모델의)를 사용하여 here를 그림과 같이

  • 봅니다 다중 입력 아키텍처를 정의 그렇지 않으면 무언가 잘못 훈련 할 수 있습니다.

+0

감사합니다! 내 입력 내용을 확인한 결과 일치하는 것으로 보입니다 (데이터는 잘 섞여서 표시되었습니다). 작은 하위 샘플에서이 문제를 해결하기 위해 내 모델이 지나친 것처럼 보입니다. 다중 입력 아키텍처를 시도하고 내 게시물을 업데이트합니다. – deeplearning