keras-team/keras · error · ValueError
`cond` function must return a scalar boolean value, but got
Error message
`cond` function must return a scalar boolean value, but got shape {} What it means
Error "`cond` function must return a scalar boolean value, but got shape {}" thrown in keras-team/keras.
Source
Thrown at keras/src/backend/openvino/core.py:1750
param_tensors = [OpenVINOKerasTensor(p.output(0)) for p in params]
packed_args, _ = pack_structure(loop_vars, param_tensors)
if isinstance(packed_args, dict):
body_out = body(packed_args)
else:
body_out = body(*packed_args)
if not isinstance(body_out, (list, tuple, dict)):
body_out = (body_out,)
flat_body_out = flatten_structure(body_out)
if isinstance(packed_args, dict):
cond_output = get_ov_output(cond(body_out))
else:
cond_output = get_ov_output(cond(*body_out))
if len(cond_output.get_partial_shape()) != 0:
raise ValueError(
"`cond` function must return a scalar boolean value, "
"but got shape {}".format(cond_output.get_partial_shape())
)
for p, out in zip(params, flat_body_out):
out_shape = get_ov_output(out).get_partial_shape()
p.set_partial_shape(out_shape)
results = [cond_output] + [get_ov_output(x) for x in flat_body_out]
body_func = Model(results=results, parameters=params)
loop.set_function(body_func)
loop.set_special_body_ports([-1, 0])
for param, init_val, next_val in zip(params, loop_vars_ov, flat_body_out):
loop.set_merged_input(param, init_val, get_ov_output(next_val))
outputs_flat = [
OpenVINOKerasTensor(loop.get_iter_value(get_ov_output(val)))View on GitHub (pinned to 7a34a03db6)
When it happens
Trigger: Thrown at keras/src/backend/openvino/core.py:1750 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/0aad586e5960dbb2.
Report an issue: GitHub.