Open mettafore opened 5 years ago
Could you provide a full stack trace. That would be more helpful.
I'm getting the same error while trying to convert to an estimator:
AttributeError Traceback (most recent call last)
<ipython-input-4-0cfc1dbdeb5c> in <module>
----> 1 estimator = tf.keras.estimator.model_to_estimator(keras_model=model)
~/.local/share/virtualenvs/workspace-wJJAg-g4/lib/python3.6/site-packages/tensorflow/python/keras/estimator/__init__.py in model_to_estimator(keras_model, keras_model_path, custom_objects, model_dir, config)
71 custom_objects=custom_objects,
72 model_dir=model_dir,
---> 73 config=config)
74
75 # LINT.ThenChange(//third_party/tensorflow_estimator/python/estimator/keras.py)
~/.local/share/virtualenvs/workspace-wJJAg-g4/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/keras.py in model_to_estimator(keras_model, keras_model_path, custom_objects, model_dir, config)
484 if keras_model._is_graph_network:
485 warm_start_path = _save_first_checkpoint(keras_model, custom_objects,
--> 486 config)
487 elif keras_model.built:
488 logging.warning('You are creating an Estimator from a Keras model manually '
~/.local/share/virtualenvs/workspace-wJJAg-g4/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/keras.py in _save_first_checkpoint(keras_model, custom_objects, config)
352 training_util.create_global_step()
353 model = _clone_and_build_model(model_fn_lib.ModeKeys.TRAIN, keras_model,
--> 354 custom_objects)
355 # save to checkpoint
356 with session.Session(config=config.session_config) as sess:
~/.local/share/virtualenvs/workspace-wJJAg-g4/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/keras.py in _clone_and_build_model(mode, keras_model, custom_objects, features, labels)
199 compile_clone=compile_clone,
200 in_place_reset=(not keras_model._is_graph_network),
--> 201 optimizer_iterations=global_step)
202
203 return clone
~/.local/share/virtualenvs/workspace-wJJAg-g4/lib/python3.6/site-packages/tensorflow/python/keras/models.py in clone_and_build_model(model, input_tensors, target_tensors, custom_objects, compile_clone, in_place_reset, optimizer_iterations)
496 K.track_tf_optimizer(optimizer)
497 else:
--> 498 optimizer_config = model.optimizer.get_config()
499 optimizer = model.optimizer.__class__.from_config(optimizer_config)
500 if optimizer_iterations is not None:
~/.local/share/virtualenvs/workspace-wJJAg-g4/lib/python3.6/site-packages/tensorflow/python/keras/optimizers.py in get_config(self)
529 def get_config(self):
530 config = {
--> 531 'lr': float(K.get_value(self.lr)),
532 'beta_1': float(K.get_value(self.beta_1)),
533 'beta_2': float(K.get_value(self.beta_2)),
~/.local/share/virtualenvs/workspace-wJJAg-g4/lib/python3.6/site-packages/tensorflow/python/keras/backend.py in get_value(x)
2796 elif ops.inside_function():
2797 raise RuntimeError('Cannot get value inside Tensorflow graph function.')
-> 2798 return x.eval(session=get_session())
2799
2800
~/.local/share/virtualenvs/workspace-wJJAg-g4/lib/python3.6/site-packages/tensorflow/python/keras/backend.py in get_session()
480 if not _MANUAL_VAR_INIT:
481 with session.graph.as_default():
--> 482 _initialize_variables(session)
483 return session
484
~/.local/share/virtualenvs/workspace-wJJAg-g4/lib/python3.6/site-packages/tensorflow/python/keras/backend.py in _initialize_variables(session)
756 # marked as initialized.
757 is_initialized = session.run(
--> 758 [variables_module.is_variable_initialized(v) for v in candidate_vars])
759 uninitialized_vars = []
760 for flag, v in zip(is_initialized, candidate_vars):
~/.local/share/virtualenvs/workspace-wJJAg-g4/lib/python3.6/site-packages/tensorflow/python/keras/backend.py in <listcomp>(.0)
756 # marked as initialized.
757 is_initialized = session.run(
--> 758 [variables_module.is_variable_initialized(v) for v in candidate_vars])
759 uninitialized_vars = []
760 for flag, v in zip(is_initialized, candidate_vars):
~/.local/share/virtualenvs/workspace-wJJAg-g4/lib/python3.6/site-packages/tensorflow/python/util/tf_should_use.py in wrapped(*args, **kwargs)
191 """
192 def wrapped(*args, **kwargs):
--> 193 return _add_should_use_warning(fn(*args, **kwargs))
194 return tf_decorator.make_decorator(
195 fn, wrapped, 'should_use_result',
~/.local/share/virtualenvs/workspace-wJJAg-g4/lib/python3.6/site-packages/tensorflow/python/ops/variables.py in is_variable_initialized(variable)
2922 initialized, `False` otherwise.
2923 """
-> 2924 return state_ops.is_variable_initialized(variable)
2925
2926
~/.local/share/virtualenvs/workspace-wJJAg-g4/lib/python3.6/site-packages/tensorflow/python/ops/state_ops.py in is_variable_initialized(ref, name)
131 return gen_state_ops.is_variable_initialized(ref=ref, name=name)
132 # Handle resource variables.
--> 133 return ref.is_initialized(name=name)
134
135
AttributeError: 'Tensor' object has no attribute 'is_initialized'
Here's a simple model that will reproduce the error:
import tensorflow as tf
from tensorflow.keras import layers, initializers
from coord import CoordinateChannel2D
model = tf.keras.Sequential()
model.add(tf.keras.layers.InputLayer(input_shape=[65,65,3], name='image'))
model.add(CoordinateChannel2D())
model.add(layers.Conv2D(filters=6, kernel_size=(35, 35), activation='relu'))
model.add(layers.AveragePooling2D())
model.add(layers.Conv2D(filters=16, kernel_size=(5, 5), activation='relu'))
model.add(layers.AveragePooling2D())
model.add(layers.Flatten())
model.add(layers.Dense(units=120, activation='relu'))
model.add(layers.Dense(units=84, activation='relu'))
model.add(layers.Dense(units=1, activation = 'sigmoid'))
model.compile(loss=tf.keras.losses.mean_squared_error,
optimizer=tf.keras.optimizers.Adam(),
metrics=['mse'])
estimator = tf.keras.estimator.model_to_estimator(keras_model=model)
I had the same issue and I solved it by installing tensorflow 2.0
Even with 2.1 I still get this error, when running the above example. Any idea?
i changed all the K to tf and it works lol. Very weird solution but it works. I'm on tf 1.14.0
i changed all the K to tf and it works lol. Very weird solution but it works. I'm on tf 1.14.0
Actually only need to change all the K.ones to tf.ones and this issue go away
i changed all the K to tf and it works lol. Very weird solution but it works. I'm on tf 1.14.0
Actually only need to change all the K.ones to tf.ones and this issue go away
Sorry, but what means 'change all the K.ones to tf.ones '? What tf.ones?
Thank you for this great library. It is certainly very useful. I am using the tensorflow.keras framework. I've changed all the library imports in coord.py to tensorflow.keras . In eager execution mode, it works fine, however, I get this error in tensorflow static graph mode:
AttributeError: 'Tensor' object has no attribute 'is_initialized'
Could you help me solve this issue?
Thanks