It's an interesting finding. Could you elaborate a case that `__repr__` is invoked before config collection?
On the other hand, your suggested change will make the caching useless, because `ConfigSpace._collect` is always true. A more safer solution could be like: ```python def _add_new_transform(self, space_class, name, axes, policy, **kwargs): self._length = None # do the rest process. ``` In this way, we "invalid" any existing length when a new knob is added. Another solution is maintaining the length on the fly: ```python def __init__(self): self._length = 1 def _add_new_transform(self, space_class, name, axes, policy, **kwargs): # do the rest process. self._length *= len(self._entity_map[name]) def __len__(self): return self._length ``` --- [Visit Topic](https://discuss.tvm.apache.org/t/small-config-bug-in-autotvm/8285/2) to respond. You are receiving this because you enabled mailing list mode. To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/51bca63435f8778ee2ed367a2f783950ad4c783935985c625aa4b3b582464b93).