quniform sometimes gives a lower value than "low"
Maybe I'm misunderstanding quniform, but it seems it can give a lower value than "low": round(uniform(low, high)/q)*q. If low=10, high=1000, q=50, then it will not give a uniform distribution from low to high in steps of 50, but sometimes will give 0: round(10/50)*50=0. Also it will never return 10 or 60, only multiples of 50.
Is there a better way to implement this?
It also seems to me that round(uniform(low, high)/q)*q also gives a bias away from the low and high values. And a staggered pattern in between low and high. It seems to me these are not good implementations of discrete uniform distributions.
Just ran into this issue as well with occasional draws of 0 from hp.quniform("batch_size", 16, 512, 64) that were crashing our training loop. We have worked around it by ensuring that our feasible space satisfies low / q > 0.5 but it was definitely a pain to track this down.
I see that this issue has been open for almost 2 years, is the delay in addressing this due to resource constraints on the part of the hyperopt developers or a lack of consensus on how it should be fixed ?
This issue has been marked as stale because it has been open 120 days with no activity. Remove the stale label or comment or this will be closed in 30 days.