У меня есть модель Deep Learning, построенная с использованием API Keras от Tensorflow. Модель дает 100% тренировку и 95% точность теста на моем наборе данных. Я использую tf.random.set_seed
, что гарантирует воспроизводимость моих результатов.
Теперь, когда я добавляю слой Dropout со скоростью 0.0, я ожидаю, что результаты будут такими же. Но вместо этого он дает мне тренировку на 97,69% и точность теста на 93,33%.
Почему это так?
Разве показатель отсева 0,0 не означает «Нет отсева»?
Я не уверен, поможет ли это, но моя модель выглядит так:
tf.keras.backend.clear_session()
model = tf.keras.models.Sequential([
Conv2D(32, (3, 3), activation=None, input_shape=(64, 64, 3)),
MaxPooling2D((2, 2)),
Conv2D(64, (3, 3), activation=None),
MaxPooling2D((2, 2)),
Conv2D(128, (3, 3), activation=None),
MaxPooling2D((2, 2)),
Flatten(),
Dense(128),
# Dropout(0.0),
Dense(6, activation=tf.nn.softmax)
])
model.compile(tf.optimizers.Adam(learning_rate=0.001), tf.losses.categorical_crossentropy, metrics=['accuracy'])
print(model.summary())