¿Cómo puedo reducir aún más la pérdida de valor de la CNN modelo? [cerrado]

0

Pregunta

Estoy tratando de construir un CNN para clasificar las frutas. He estado experimentando un alto nivel de pérdida de valores y estoy tratando de reducir tanto como puedo, pero no estoy seguro de cómo mejorar mi modelo a seguir.

Aquí está mi código:

model96 = tf.keras.Sequential()

#Architecture
model96.add(tf.keras.layers.Conv2D(filters = 32,
                                 kernel_size = (3, 3),
                                 activation = "relu",
                                 input_shape = (96, 96, 3)))

model96.add(tf.keras.layers.Conv2D(filters = 32,
                                 kernel_size = (3, 3),
                                 activation = "relu"))

model96.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2)))

model96.add(tf.keras.layers.Dropout(rate=0.25))

model96.add(tf.keras.layers.Flatten())

model96.add(tf.keras.layers.Dense(units=128, activation='relu'))

model96.add(tf.keras.layers.Dropout(rate=0.5))

#output layer
model96.add(tf.keras.layers.Dense(units=4, activation='softmax'))

#Loss function
model96.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

#Train model
hist96 = model96.fit(x=x_train96_norm, y=y_train, epochs=100)

#Test and Evaluate
print("Performance with test data:")
loss96, accuracy96 = model96.evaluate(x=x_test96_norm, y=y_test)
print('loss =', loss96)
print('accuracy =', accuracy96)

Durante el entrenamiento, el final de la pérdida de valor fue 0.0153 y el final de la exactitud del valor que se 0.9958, sin embargo, durante la prueba el modelo anotó: loss = 1.0462701320648193 y accuracy = 0.8666666746139526

1

Mejor respuesta

2

Tu problema se parece a un clásico problema de sobreajuste. Usted puede agregar EarlyStopping para evitar esto. EarlyStopping se detendrá el proceso de formación tan pronto como la validación de la pérdida deja de disminuir. El código es bastante sencillo:

callback = tf.keras.callbacks.EarlyStopping(monitor='loss', patience=3)

hist96 = model96.fit(x=x_train96_norm, y=y_train, epochs=100, callbacks=[callback])

2021-11-24 07:36:48

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................