-
Notifications
You must be signed in to change notification settings - Fork 77
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BREAKING: Change expression types to DynamicExpressions.Expression
(from DynamicExpressions.Node
)
#326
Conversation
I was encountering some issues with constraint parsing in |
Going to punt |
Seems like the garbage collection is going crazy in the tests, which is why they are so slow. The reason why 1.6 and 1.8 are much faster is – I think – because DispatchDoctor.jl is turned off. So something about DispatchDoctor.jl is causing the GC to overwork itself... Possibly related to MilesCranmer/DispatchDoctor.jl#57 and MilesCranmer/DispatchDoctor.jl#58? |
10f396b
to
daee883
Compare
Fixed the performance regression in the unittests with SymbolicML/DynamicExpressions.jl@74c8dc1. Edit: still seems to hang around a bit. It's something to do with DispatchDoctor for sure, from studying the PProf outputs. So it won't affect actual runtime performance, just the testing. So probably fine to merge for now. |
These new experimental
Expression
types store both the operators and variable names within the object, rather than the plainNode
which only stores the enum information about an expression.This also adds
ParametricExpression
to learn basis expressions that have variable constants depending on class:so it basically learns$y= 2 \cos(x_4 + \alpha) + x_1^2 - \beta$ for $\alpha$ and $\beta$ parameters (which can be different according to the
classes
parameter – here there are two classes/types of behavior).This
ParametricExpression
is just a single implementation ofAbstractExpression
but you can see how you can do pretty custom things now.Fixes #340. Fixes #337. Fixes #336.
TODO:
class
feature to MLJ which will have special treatment.