#tensorflow #keras #conv-neural-network
Вопрос:
Я обучил точность моего набора данных выше 0,8.
Но точность данных тестирования иногда может составлять 0,7, а иногда всего 0,2.
(Мой набор данных для обучения и набор данных для тестирования одинаковы.)
Что не так с моей моделью CNN?
Спасибо.
Это моя тренировочная модель.
inputs = tf.keras.layers.Input(shape=(64,64,3))
conv_layer1 = Conv2D(32,(3,3),padding='same')(inputs)
LR1 = LeakyReLU(alpha=0.3)(conv_layer1)
conv_layer2 = Conv2D(32,(3,3),padding='same')(LR1)
LR2 = LeakyReLU(alpha=0.3)(conv_layer2)
max_layer1 = MaxPooling2D(pool_size=(2,2))(LR2)
conv_layer3 = Conv2D(64,(3,3),padding='same')(max_layer1)
LR3 = LeakyReLU(alpha=0.3)(conv_layer3)
conv_layer4 = Conv2D(64,(3,3),padding='same')(LR3)
LR4 = LeakyReLU(alpha=0.3)(conv_layer4)
max_layer2 = MaxPooling2D(pool_size=(2,2))(LR4)
conv_layer5 = Conv2D(128,(3,3),padding='same',activation='relu')(max_layer2)
max_layer3 = MaxPooling2D(pool_size=(2,2))(conv_layer5)
conv_layer6 = Conv2D(256,(3,3),padding='same',activation='relu')(max_layer3)
max_layer4 = MaxPooling2D(pool_size=(2,2))(conv_layer6)
flatten = Flatten()(max_layer4)
dence2 = Dense(64,activation='relu')(flatten)
f1 = Dense(11, activation='softmax', name='prediction_one')(dence2)
f2 = Dense(11, activation='softmax', name='prediction_two')(dence2)
f3 = Dense(11, activation='softmax', name='prediction_third')(dence2)
model2 = Model(outputs=[f1,f2,f3], inputs=inputs)
model2.summary()
model2.compile(loss=['categorical_crossentropy','categorical_crossentropy','categorical_crossentropy'],optimizer='adam',metrics=['accuracy'])
history = model2.fit(X_train,[co1_train,co2_train,co3_train],64,epochs=10,validation_data=(X_valid,[co1_valid,co2_valid,co3_valid]))