ВНИМАНИЕ от Tensorflow при создании VGG16
Я использую Keras для создания модели глубокого обучения. Когда я создаю модель VGG16, она создается, но я получаю следующее предупреждение.
vgg16_model = VGG16()
почему происходит это предупреждение и как я могу решить это?
WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
Ответы
Ответ 1
Похоже, что существует открытая проблема git, чтобы убрать это в коде keras:
https://github.com/tensorflow/minigo/issues/740
Вы должны спокойно проигнорировать предупреждение, я не верю, что вы можете изменить его, не изменяя репозиторий TF. Вы можете отключить предупреждения, как указано здесь:
tf.logging.set_verbosity(tf.logging.ERROR)
Ответ 2
Вы можете использовать функцию ниже, чтобы избежать этих предупреждений. Во-первых, вы должны сделать соответствующий импорт:
import os
os.environ['KERAS_BACKEND']='tensorflow'
import tensorflow as tf
def tf_no_warning():
"""
Make Tensorflow less verbose
"""
try:
tf.logging.set_verbosity(tf.logging.ERROR)
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
except ImportError:
pass
А затем вызовите вышеуказанную функцию в начале кода.
tf_no_warning()
Ответ 3
Таким образом, метод colocate_with
является контекстным менеджером, который гарантирует, что операция или тензор, который вы собираетесь создать, будут размещены на том же устройстве, на котором находится эталонная операция. Но ваше предупреждение говорит о том, что оно устарело и что теперь оно будет обрабатываться автоматически. В следующей версии tenorflow этот метод будет удален, поэтому вам придется либо обновить код сейчас (который будет выполняться в настоящее время), либо позже (когда вы обновите версию tenorflow до следующей, этот код больше не будет работать потому что этот метод будет удален)