ВНИМАНИЕ от 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 до следующей, этот код больше не будет работать потому что этот метод будет удален)