0

하나 개의 클래스를 예측한다. 내가 가지고있는 첫 번째 문제는 유효성 검사 손실과 정확도가 높게 시작된다는 것입니다. 낮은 값을도 훈련에 도달 할 때까지이 같은 값내 네트워크 단지 내가 CNNs를 사용하여 여섯 클래스 분류를 수행하려고

(training start)에 갇혀 있기 때문에,하지 유효성 검사 정확도 계산 것으로 보인다.

half training : 그것은 정말 나쁜 간다 정확도를 계산하기 시작 않는 그런

. 나는 다음과 같은 그물 사용하고 있습니다 : 레이블이 올바른지 내가 확인했다

inp = Input(shape=input_shape) 
out = Conv2D(16, (5, 5),activation = 'relu', kernel_initializer='glorot_normal', kernel_regularizer=regularizers.l2(0.01), padding='same')(inp) 
out = MaxPooling2D(pool_size=(2, 2))(out) 
out = Dropout(0.5)(out) 

out = Conv2D(32, (3, 3),activation = 'relu',kernel_initializer='glorot_normal',kernel_regularizer=regularizers.l2(0.01), padding='same')(out) 
out = MaxPooling2D(pool_size=(2, 2))(out) 
out = Dropout(0.5)(out) 

out = Conv2D(32, (3, 3),activation = 'relu',kernel_initializer='glorot_normal',kernel_regularizer=regularizers.l2(0.01), padding='same')(out) 
out = Dropout(0.5)(out) 

out = Conv2D(64, (3, 3), activation = 'relu',kernel_initializer='glorot_normal',kernel_regularizer=regularizers.l2(0.01), padding='same')(out) 
out = Conv2D(64, (3, 3),activation = 'relu', kernel_initializer='glorot_normal',kernel_regularizer=regularizers.l2(0.01), padding='same')(out) 
out = MaxPooling2D(pool_size=(2, 2))(out) 

out = Conv2D(128, (3, 3), activation = 'relu',kernel_initializer='glorot_normal',kernel_regularizer=regularizers.l2(0.01), padding='same')(out) 
out = Conv2D(128, (3, 3),activation = 'relu', kernel_initializer='glorot_normal',kernel_regularizer=regularizers.l2(0.01), padding='same')(out) 
out = MaxPooling2D(pool_size=(2, 2))(out) 
out = Conv2D(256, (3, 3), activation = 'relu',kernel_initializer='glorot_normal',kernel_regularizer=regularizers.l2(0.01), padding='same')(out) 
out = MaxPooling2D(pool_size=(2, 2))(out) 
out = Conv2D(256, (3, 3), activation = 'relu',kernel_initializer='glorot_normal', kernel_regularizer=regularizers.l2(0.01), padding='same')(out) 
out = MaxPooling2D(pool_size=(2, 2))(out) 
out = Flatten()(out) 
out = Dropout(0.5)(out) 
dense1 = Dense(6, activation="softmax")(out) 
model = Model(inputs = inp, outputs = dense1) 

을하고, 이미지도 괜찮습니다. 네트워크의 OUPUT은 항상 같은 클래스 (그런데 이미지가 적은 클래스입니다)입니다.

내가 lr = 1e-5

+3

. 모든 커널 정식기를 제거하십시오. 또한 현재 conv 블록에서 드롭 아웃을 제거하십시오. 훈련을 시작하고 overfitting을 볼 경우, 다음 전환 블록 드롭 아웃 시작 – Nain

답변

1

와 코드를 아담 최적화를 사용하고 6 개 클래스 분류에 대한 좋은 것 같다. 하지만, 귀하의 네트워크에 너무 많은 드롭 아웃 레이어가 있다고 생각합니다. 그리고 대부분의 신호가 끝나지 않습니다. 데이터 세트에서 간단한 네트워크를 사용해 보셨습니까?

훈련에 첫 번째 방법이 시도 : 당신은 네트워크가 무엇을 배울 실패했다고 정규화 너무 많이 사용하고 https://github.com/keras-team/keras/blob/master/examples/mnist_cnn.py

관련 문제