Почему Dropout с коэффициентом 0.0 в Керасе не ведет себя так же, как и без отсева? - PullRequest
0 голосов
/ 29 марта 2020

У меня есть модель 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())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...