«Ошибка атрибута: модуль ‘tensorflow’ не имеет атрибута ‘tables_initializer’ » с использованием TFv2.2.0, почему и как это решить?

#python #tensorflow #keras #tensorflow2.0 #tf.keras

Вопрос:

У меня есть ошибки, когда я хочу запустить эти строки.

  import tensorflow.python.keras.backend as K

 session = K.get_session()
 init_op = tf.group(tf.tables_initializer(),tf.global_variables_initializer(), 
 tf.local_variables_initializer())
 session.run(init_op)
 np.random.seed(1)
 tf.set_random_seed(1)
 

Ошибка гласит: модуль «tensorflow» не имеет атрибута «tables_initializer», и в той же форме происходит с global_variables_initializer и local_variables_initializer (когда я запускаю их по отдельности).

   ---------------------------------------------------------------------------
  AttributeError                            Traceback (most recent call last)
  <ipython-input-40-82a30eae4406> in <module>()
        5 
        6 session = K.get_session()
  ----> 7 init_op = tf.group(tf.tables_initializer(),tf.global_variables_initializer(), 
        tf.local_variables_initializer())
        8 session.run(init_op)
        9 np.random.seed(1)

        AttributeError: module 'tensorflow' has no attribute 'tables_initializer'
 

Пожалуйста, помогите…

Ответ №1:

Данный код совместим с Tensorflow 1.x. Чтобы он работал с Tensorflow 2.x, необходимо внести некоторые изменения в ваш код, т. Е. Изменить имена библиотек следующим образом

tf.compat.v1.tables_инициализатор()

tf.compat.v1.global_variables_инициализатор()

tf.compat.v1.local_variables_инициализатор().

Найдите рабочий фрагмент кода

 import tensorflow.compat.v1 as tf
import tensorflow.python.keras.backend as K
tf.compat.v1.disable_eager_execution()
import numpy as np

session = K.get_session()
init_op = tf.group(tf.tables_initializer(),tf.global_variables_initializer(), 
tf.local_variables_initializer())
session.run(init_op)
np.random.seed(1)
tf.set_random_seed(1)