tensorflow: Пожалуйста, используйте `rate` вместо `keep_prob`. Rate должен быть установлен в `rate = 1 — keep_prob`

#python #tensorflow #keras #deep-learning

#python #tensorflow #keras #глубокое обучение

Вопрос:

Я получаю это предупреждение большую часть времени, когда я определяю модель с использованием Keras. Кажется, это каким-то образом происходит из tensorflow, хотя:

 WARNING:tensorflow:From C:UserslenikAppDataLocalProgramsPythonPython37libsite-packageskerasbackendtensorflow_backend.py:3445: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.
Instructions for updating:
Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.
  

Стоит ли беспокоиться об этом предупреждении?
Если да, то как мне решить эту проблему?

Комментарии:

1. Нет, об этом не о чем беспокоиться.

2. для чего это предупреждение?

3. Вам необходимо обновить keras

Ответ №1:

Это предупреждение о снижении стоимости связано со слоем выпадения в tf.keras.layers.Dropout .
Чтобы избежать этого предупреждения, вам нужно четко указать rate= в Dropout как: Dropout(rate=0.2) .

Ранее это было, keep_prob и теперь оно устарело rate , т.е. rate = 1-keep_prob.
Для получения дополнительной информации вы можете ознакомиться с документацией по tensorflow.

Комментарии:

1. Это просто предупреждение, оно не предупреждает вас, если вы повторно запустите тот же код.

2. Ну, в моем случае это так.

3. @xanjay, я добавил rate в уровень отсева, но все равно вижу это предупреждение!!

Ответ №2:

Tensorflow сообщает вам, что аргумент keep_prob устарел и что он был заменен аргументом rate .

Теперь, чтобы добиться того же поведения, что и сейчас, и удалить предупреждение, вам нужно заменить каждое вхождение keep_prob аргумента на rate argument и передать значение 1-keep_prob .

Комментарии:

1. replace every occurrence в каком файле я должен произвести замены?

2. Каждое вхождение, которое есть у вас в коде. Если у вас нет вхождений, то в коде tensorflow само по себе есть некоторые вхождения. В этом последнем случае вам не нужно беспокоиться о предупреждении.

3.@Neb, извините, если это звучит бессмыслицей; Мне просто любопытно, потому что я получаю такое же предупреждение. Итак, если keep_prob заменено на rate в установленной библиотеке TensorFlow, почему работает код, вызывающий функцию со старым аргументом rate ?

4. @IgNite Я не уверен, что понимаю вопрос. rate является новым аргументом и keep_prob является (или был, потому что вопросу почти 1 год) старым. Вызов функции с аргументом rate или keep_prob не возвращает никакой ошибки, но она будет вести себя по-другому, вот почему я говорю, что для сохранения того же результата при использовании rate аргумента вы должны заменить значение, которое вы использовали для keep_prob с 1 - (that value) .