Conversation
sampled outside its permitted range.
…king pdf regardlessx of input
hyperparameters.pyx where i changed Typing.
beta and normal distributions
parameters - now, they are generated the same way as the uniform (but scaled, so that it makes sense even though they are not normalized)
hyperparamretersChanged back to standard local search procedure for the normal hyperparamreters
class down to the subclasses Float, Constant, Integer, Categorical and Ordinal Hyperparameters (as these almost certainly can have a well-defined pdf, or that it would make sense to consider a pdf for these HP types).
all the classes that implement a pdf
… betaparams_merge
for both (identical to Uniform parameters
the other parameter types - follows as closely as possible
|
Unfortunately, no improvement. I'm unable to get the test_round_trip test to fail, and so I really don't know how to approach this. The assertion is made on a pair of 32 000 token strings (both of which have the same length in the failed test), so I really don't know on this one. Do you have any idea? Is the source code different for the tests? |
|
I ran this branch locally and got no test failures either. I will rerun these github action tests, if they fail again, I'm willing to push this through anyways and just log that this happened as an Issue. And no, the tests running through github that you see below are the exact same tests as you have in the source code. The only difference is the enviornment they run in (Python versions, conda, how it's installed, windows/mac/linux). |
|
Thanks, much appreciated! |
|
I did some digging and it seems our automated tests are pulling your latest commit on this PR, they're pulling this one. I have no idea why that is ... However I can confirm your latest commit is actually correct so I would vote to disregard these checks but try and figure out why it pulls the merge commit instead of the most recent. @mfeurer thoughts? |
|
Can you try one last thing, just push an empty commit |
|
Sorry, was away for lunch. It's done! |
|
No problem, thanks for that! It appears it's still pulling the old version and isn't pulling the latest commit. I'm going to merge this and finally progress on to stage 2. If the error crops up there again then we will need to somehow fix it but hopefully it dissapears. |
|
Okay I figured out the problem and could reproduce the issue. The main problem is that your fork is a good few commits behind. You can see this here where it says that you are "10 commits behind automl:master", this also means that your branches are 10 commits behind. To make everything up to date and to be able to reproduce the error, you must:
As for why this error occurs, ideally we should have a test that is a bit more informative as to why they are not equivalent but I will look through the changes of the 10 commits that diverge and see if anything pops up that I could point you to. Apologies this has been so complicated. This package is in need of updating all around -_- |
|
The failed pcs file is |
|
I check through the other 2 PR's, it doesn't seem the pcs file format was fixed at any point? |
|
Well, the PCS format was not fixed, but rather disabled for ConfigSpaces that include categoricals. |
|
I'm not sure that's something we can really do? It basically means ConfigSpace won't allow any kind of exporting for people that use categoricals. I think we would need some solution to this by the end of this PR. The only solution I can think of is to only disable it for the new feature, essentially disabling pcs export/import when a categorical distribution is non-uniform. However this is not ideal and really the pcs file format should be updated. |
|
Well, since every categorical has weights with this solution, we'd have to make categoricals only have weights in the case where the user specifies it. It seemed like a less consistent solution in my opinion, but I guess it can be changed if you deem it to be the best solution. |
|
Good morning. I'm on this. The bug appears because for the json serialization of the ConfigSpace Now the question is: what's going on here? I'll keep you posted. |
|
And the issue is ConfigSpace/ConfigSpace/hyperparameters.pyx Line 1598 in f1ead4c The hyperparameter is serialized to json, then de-serialized from json. Until then everything is fine. Now when the constructor is called it invokes the function Potentially we need to store and serialize the weights, and have the probabilities as an internal representation only. Then the probabilities will only be computed on |
|
If you're asking me, I think that seems like a no-brainer. I don't really see why the probabilities need to be stored externally if the weights are already there. |
Great :) Could you please go ahead and store and serialize the weights? |
|
Sure thing! |
|
To simplify testing you can temporarily prune the file This will continue to fail as long as the bug is there. |
|
Okay, I guess we're getting closer - it seems to me that the final test passed, right? With the remaining failing tests, and PCS files, I would like some input as to what is actually the issue, and what to do with the categorical HPs in the PCS format. Opinions? |
mfeurer
left a comment
There was a problem hiding this comment.
The tests look good and we can take care of the failing doctest after this PR is merged. As a last step I would suggest replacing the list of weights by tuple of weights because they are immutable.
* Fix bug introduced by #221: now, PCS can be serialized again if no weight was given * Doctest * Bump version number of the json writer * Apply suggestions from code review Co-authored-by: Eddie Bergman <eddiebergmanhs@gmail.com> Co-authored-by: Eddie Bergman <eddiebergmanhs@gmail.com>
PiBO Pull Request 1 - Bugfixes
Bugfixes / changes to existing repo
Bugfix - Normal HPs
Bugfix - to_uniform
Bugfix - to_integer
Change - Categorical HPs