Что не так с документацией по тензорному потоку Google? - PullRequest
0 голосов
/ 03 апреля 2020

Я следил за документами https://www.tensorflow.org/tutorials/load_data/csv и пришел к действительно разочаровывающей проблеме. В этом уроке модель предсказывает выживших Титани c. Окончательные значения прогноза учебника там были совсем не хороши (или я так думаю).

  • Прогнозируемая выживаемость: -236.86% | Фактический результат: выжил
  • Прогнозируемая выживаемость: -100,17% | Фактический результат: DIED
  • Прогнозируемая выживаемость: -238,74% | Фактический результат: DIED
  • Прогнозируемая выживаемость: 147,69% | Фактический результат: DIED
  • Прогнозируемая выживаемость: 12,94% | Фактический результат: выжил

Почему модель прогнозирует 12,94% как выживших и 147,69% как умерших? Что здесь происходит?

1 Ответ

0 голосов
/ 03 апреля 2020

Проблема в том, что последний слой Dense должен иметь функцию активации sigmoid, указывающую, что результат должен быть между 0 и 1. Это то, что мы хотим, потому что мы предсказываем вероятность. Без этого выходные данные могут принимать любое положительное или отрицательное значение, поэтому вы можете увидеть странные значения.

model = tf.keras.Sequential([
           preprocessing_layer,
           tf.keras.layers.Dense(128, activation='relu'),
           tf.keras.layers.Dense(128, activation='relu'),
           tf.keras.layers.Dense(1,activation='sigmoid'),
]) 

Когда вы снова запустите код с сигмоидой, результат будет

Прогнозируемая выживаемость: 100,00% | Фактический результат: DIED

Прогнозируемая выживаемость: 17,95% | Фактический результат: выжил

Прогнозируемая выживаемость: 99,80% | Фактический результат: DIED

Прогнозируемая выживаемость: 0,00% | Фактический результат: DIED

Прогнозируемая выживаемость: 10,65% | Фактический результат: DIED

В этом гораздо больше смысла.

...