Skip to content

AttributeError: 'SymbolicTensor' object has no attribute 'numpy': auto_clip #1

@XaverStiensmeier

Description

@XaverStiensmeier

Using the AutoClip Keras description:

import smartclip as sc
from smartclip.backends.tf.integrate import SmartClipCallback
callbacks = []
callbacks.append(SmartClipCallback(model_ref=lambda: model, optimizer=ae_config.compiled_optimizer, clipper=sc.AutoClip()))
history = model.fit(train_ds, epochs=config["epochs"], validation_data=val_ds, callbacks=callbacks)

I encountered this issue:

File "/home/ubuntu/log-anomaly-detection-openstack-ml/venv/lib/python3.12/site-packages/keras/src/utils/traceback_utils.py", line 122, in error_handler raise e.with_traceback(filtered_tb) from None File "/home/ubuntu/log-anomaly-detection-openstack-ml/venv/lib/python3.12/site-packages/smartclip/backends/tf/integrate.py", line 57, in wrapped_apply_gradients clipped = sc_tf._apply_grads_to_vars(grads, vars_, clipper) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/log-anomaly-detection-openstack-ml/venv/lib/python3.12/site-packages/smartclip/backends/tf/__init__.py", line 99, in _apply_grads_to_vars clipper.observe(float(g_norm.numpy()), key=key) ^^^^^^^^^^^^ AttributeError: 'SymbolicTensor' object has no attribute 'numpy'

Workaround

Forcing Eager Tensors can avoid this issue, but is probably less than ideal as it prevents optimizations.

import tensorflow as tf
tf.config.run_functions_eagerly(True)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions