-
Notifications
You must be signed in to change notification settings - Fork 89
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
Make test_utils
available as a stand alone package
#69
Comments
I'm not super against adding a FiniteDifferences.jl dependency to ChainRules.jl Though perhaps that is better done in the AD only |
I wonder what @willtebbutt thinks? |
I guess there are two options here:
This is something that we could think about doing, but I expect that the merits are much less substantial than in an AD-package's case. |
Option 3. |
I would be pro- this third option if it could be done in a way that has a simple API that would play nicely with both ChainRules and AD packages. Seems like a common-enough problem. edit: I guess the pertinent question is how much additional code would one need to implement in |
Just bumping this. Is anyone keen to work on it? I would love to see it done, as I regularly implement custom adjoints and having something standalone to help out with this would be fantastic. Alas, I don't really have time to work on this at the minute. |
I have limitted time to do ChainRules stuff right now, What little time I have right now, is direct at the Composite PR in ChainRulesCore, and the Zygote PR. |
test_utils
available as a submoduletest_utils
available as a stand alone package
@mattBrzezinski is this a thing you might have time/interest in doing? |
I should have some free time for this in the next while. |
Some quick thoughts on this, the second option seems like the most simple route to go down, and it would be nice and clean to just add this new package as a test dependency wherever you might need it. The third option of a submodule in FDM seems a bit strange to me, as I don't see how the two are directly connected? If we did a new package, are there other utilities in our differential tools that can be pulled out and used across the board? If so, it would be nice to have a |
I think this should be a new package. I think it would be good to have this as a test dependency, here and also in other places, According to @willtebbutt there are many copies of similar code to this, in his repos and also in Nabla. I think we should make it easiest to test ChainRules, so it should have a ChainRulesCore dependency. |
Separate package sounds good to me. |
What a great thread! Time allowing, very happy to help :) |
I ha e created an empty JuliaDiff/DiffTest.jl repo |
Would a new repo be most appropriate? Or fill into https://github.com/JuliaDiff/DiffTests.jl ? If not, these package names are very very similar probably should pick something different. |
Good point. They probably shouldn't be in the same repo as the intentions of the packages are somewhat different. Jarrett wrote DiffTests many moons ago to constitute a series of quite challenging problems for an AD system to get right (e.g. does a forwards-mode package successfully deal with problems where perturbation confusion could be a problem), whereas we're writing a tool for checking that an AD tool / frule / rrule returns the correct thing. I think your idea of having different names is probably a good move. We should also reference each package in their respective readmes, explaining what the relationship between the two is to avoid confusion. |
AutoDiffTests might be a better name for the existing package. But even then the names are quite similar. AutoDiffChallenges and DiffTest? Alternative we could name the new one something like ChainRulesTest / ChainRulesTestUtils. Might be a better way to go. Naming things is difficult. |
How about a more different name. Maybe something super verbose: CheckMyDerviativesAreCorrect.jl ChainRulesTest is fine though. |
I think |
Have modified your permissions :) |
ChainRules.TestUtils
so people can use this functionality in their own testsThe text was updated successfully, but these errors were encountered: