#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)
.