keras-team/keras · error · ValueError
Expected `variables` to be a list/tuple/set. Received instea
Error message
Expected `variables` to be a list/tuple/set. Received instead object of type '{type(variables)}'. What it means
Error "Expected `variables` to be a list/tuple/set. Received instead object of type '{type(variables)}'." thrown in keras-team/keras.
Source
Thrown at keras/src/export/saved_model_export_archive.py:225
# Register an endpoint
export_archive.add_endpoint(
name="serve",
fn=model.call,
input_signature=[keras.InputSpec(shape=(None, 3), dtype="float32")],
)
# Save a variable collection
export_archive.add_variable_collection(
name="optimizer_variables", variables=model.optimizer.variables)
export_archive.write_out("path/to/location")
# Reload the object
revived_object = tf.saved_model.load("path/to/location")
# Retrieve the variables
optimizer_variables = revived_object.optimizer_variables
```
"""
if not isinstance(variables, (list, tuple, set)):
raise ValueError(
"Expected `variables` to be a list/tuple/set. "
f"Received instead object of type '{type(variables)}'."
)
# Ensure that all variables added are either tf.Variables
# or Variables created by Keras 3 with the TF or JAX backends.
if not all(
isinstance(v, (tf.Variable, backend.Variable)) for v in variables
):
raise ValueError(
"Expected all elements in `variables` to be "
"`tf.Variable` instances. Found instead the following types: "
f"{list(set(type(v) for v in variables))}"
)
if backend.backend() == "jax":
variables = tree.flatten(
tree.map_structure(self._convert_to_tf_variable, variables)
)
setattr(self._tf_trackable, name, list(variables))View on GitHub (pinned to 7a34a03db6)
When it happens
Trigger: Thrown at keras/src/export/saved_model_export_archive.py:225 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of keras-team/keras@7a34a03db6 (2026-08-25).
Data as JSON: /api/errors/fc5baf2f46344780.
Report an issue: GitHub.