tensorflow/models · error · ValueError
Invalid `num_convs` {att_num_convs} for {att_name}.
Error message
Invalid `num_convs` {att_num_convs} for {att_name}. What it means
Error "Invalid `num_convs` {att_num_convs} for {att_name}." thrown in tensorflow/models.
Source
Thrown at official/vision/modeling/heads/dense_prediction_heads.py:386
return convs, norms, predictors
def _build_attribute_net(self, conv_op, bn_op):
self._att_predictors = {}
self._att_convs = {}
self._att_norms = {}
for att_config, att_predictor_kwargs in zip(
self._config_dict['attribute_heads'], self._attribute_kwargs # pyrefly: ignore[bad-argument-type]
):
att_name = att_config['name']
att_num_convs = (
att_config.get('num_convs') or self._config_dict['num_convs']
)
att_num_filters = (
att_config.get('num_filters') or self._config_dict['num_filters']
)
if att_num_convs < 0:
raise ValueError(f'Invalid `num_convs` {att_num_convs} for {att_name}.')
if att_num_filters < 0:
raise ValueError(
f'Invalid `num_filters` {att_num_filters} for {att_name}.'
)
att_conv_kwargs = self._conv_kwargs.copy()
att_conv_kwargs['filters'] = att_num_filters
att_convs_i = []
att_norms_i = []
# Build conv and norm layers.
for level in range(
self._config_dict['min_level'], self._config_dict['max_level'] + 1
):
this_level_att_norms = []
for i in range(att_num_convs):
if level == self._config_dict['min_level']:
att_conv_name = '{}-conv_{}'.format(att_name, i)
att_convs_i.append(conv_op(name=att_conv_name, **att_conv_kwargs))View on GitHub (pinned to e006f5f0d5)
Solutions
- Set the attribute's num_convs to a non-negative integer in the head config.
- Remove num_convs for that attribute to use the default tower depth.
When it happens
Trigger: Thrown at official/vision/modeling/heads/dense_prediction_heads.py:386 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of tensorflow/models@e006f5f0d5 (2026-08-24).
Data as JSON: /api/errors/e5cafa13af6ebe2f.
Report an issue: GitHub.