-
-
Notifications
You must be signed in to change notification settings - Fork 69
Basic reverse-mode AD implementation [in progress] #226
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
Conversation
Codecov Report
@@ Coverage Diff @@
## master #226 +/- ##
==========================================
- Coverage 84.22% 83.92% -0.31%
==========================================
Files 81 82 +1
Lines 8393 8628 +235
Branches 453 475 +22
==========================================
+ Hits 7069 7241 +172
- Misses 871 914 +43
- Partials 453 473 +20
Continue to review full report at Codecov.
|
807277a
to
e50fb57
Compare
Another thing we might want to look into is implementing checkpointing. The motivation here is that a lot of physical computations end up as differential equations, and checkpointing can be quite useful there. I think we could use the particle example in #385 to compare the checkpointed-vs-vanilla implementations. |
afa6dd7
to
c33ef42
Compare
Moved to Emmy. |
This is modeled after the approach described in the dysvunctional language docs. This works now for
R^n => R
functions! It needs some work to handle nesting and all of that...@littleredcomputer , I also took a try at an approach to share the derivatives between the
tape
anddifferential
namespaces without actually making alift
implementation that lifts BOTH. The derivatives should certainly live somewhere, so we don't have to inline them.Making progress!
TODO
pullback
?extract-tangent
, or do I have to redo everything?delay
to wrap some of the partials that take a bit of work. Look at the julia docs to see how they build this in. Would we have to extend the generic arithmetic to delays?NOTES:
differential?
is incoming; that is obviously going to fail for reverse mode.with-active-tag
, so let GJS know that we do that too.