-
Notifications
You must be signed in to change notification settings - Fork 14
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
Redo all Discrete Transition nodes #455
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #455 +/- ##
==========================================
+ Coverage 74.76% 74.92% +0.15%
==========================================
Files 198 196 -2
Lines 5723 5771 +48
==========================================
+ Hits 4279 4324 +45
- Misses 1444 1447 +3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks neat, but some tests were either removed or changed. Fine with me, because those tests were checking some numerical answers? But what is the reason for changing tests in in_tests.jl
and out_tests.jl
?
@testset "Belief Propagation: (m_out::Categorical, m_a::PointMass)" begin | ||
@test_rules [check_type_promotion = false] DiscreteTransition(:in, Marginalisation) [( | ||
input = (m_out = Categorical([0.1, 0.4, 0.5]), m_a = PointMass([0.2 0.1 0.7; 0.4 0.3 0.3; 0.1 0.6 0.3])), | ||
output = Categorical([0.23000000000000004, 0.43, 0.33999999999999997]) | ||
)] | ||
end | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Were these wrong?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This test is wrong, since we cannot get an incoming message on a
, we can only set it to PointMass
and it will become a marginal (for which the rule is implemented). The rule for VMP was actually wrong, as was the test, and this was caught by the new general rule (I double checked this with Thijs)
I'm running tests for RxInfer and RxInferExamples now, if they pass I'll merge :) |
@wouterwln there is a failing test in This is the stacktrace
RxInferExamples repo is fine and compiled without errors |
The problem is in unmatched |
@bvdmitri should be fixed now |
The same test in RxInfer is still failing but for a different reason now
this is the only test that is failing |
Now adds 1(!!!) function to govern all Discrete Transition categorical rules. Probably the generic implementation is a bit slow at times but I will work on performance (and maybe add a few alternative strategies for when we have a nice and known structure)