denizyuret / AutoGrad.jl

Julia port of the Python autograd package.
Other
169 stars 26 forks source link

julia v0.7 compat #65

Closed denizyuret closed 6 years ago

denizyuret commented 6 years ago

Better start thinking about this...

denizyuret commented 6 years ago

Lates master should support Julia 0.7 and 1.0. Please test.

CarloLucibello commented 6 years ago

Tests are passing for me with no warning on julia 0.7, linux

travis.yml and appveyor.yml should be updated (see https://github.com/JuliaGPU/GPUArrays.jl/blob/master/appveyor.yml for an appveyor reference)

CarloLucibello commented 6 years ago

for reference, this is my test output btw

Test Summary: | Pass  Total
math          |   62     62
 85.167034 seconds (127.85 M allocations: 6.193 GiB, 3.80% gc time)
Test Summary: | Pass  Total
statistics    |   11     11
 12.982169 seconds (23.53 M allocations: 1.145 GiB, 5.13% gc time)
Test Summary:    | Pass  Total
specialfunctions |   20     20
 23.798883 seconds (30.97 M allocations: 1.504 GiB, 3.97% gc time)
Test Summary: | Pass  Total
getindex      |  102    102
 41.863668 seconds (81.15 M allocations: 3.870 GiB, 6.03% gc time)
  0.541758 seconds (2.50 M allocations: 83.796 MiB, 16.60% gc time)
Test Summary: | Pass  Total
rosenbrock    |    4      4
  4.334175 seconds (8.48 M allocations: 378.912 MiB, 6.71% gc time)
Test Summary: | Pass  Total
highorder     |    9      9
  2.752141 seconds (2.53 M allocations: 137.148 MiB, 7.40% gc time)
Test Summary: | Pass  Total
neuralnet     |    5      5
 10.617039 seconds (19.69 M allocations: 966.995 MiB, 6.55% gc time)
   Testing AutoGrad tests passed 
denizyuret commented 6 years ago

Julia 1.0 is finally out and we have been working on getting AutoGrad and Knet compatible. Great thanks to everyone who contributed. Unfortunately the latest language updates broke everything from broadcasting to iteration, from the array interfaces to function declaration. So simple syntax updates were not sufficient and major code restructuring was needed in both packages. It took a lot longer than I anticipated but the latest commits on master finally pass the existing tests. I had to manually go over the pull requests and will continue to do so to merge anything that was missed. Sorry for the chaos.

The latest tagged versions AutoGrad 0.1.0 and Knet 0.9.2 work with Julia 0.6 and are incompatible with 0.7. I will tag the new releases compatible with Julia 0.7-1.0 (not backwardly compatible with 0.6) starting with 1.0.0 and use semantic versioning going forward.

Before an official release for 1.0 is tagged I need help (in the form of pull requests) with the following:

  1. Unit tests: each file under src should have a corresponding file under test that does unit testing of every function defined. Currently this is very incomplete especially for AutoGrad.

  2. Documentation and Examples: These haven't been updated or tested. Julia 1.0 changed a lot of syntax and they need to be updated. I found Julia 0.7 helpful with its warnings in figuring out how to update the code.

  3. Existing PRs and Issues: Some of the Issues may have been resolved, they need to be closed. Most of the PRs will not merge with the new code, if they are still useful they need to be manually tested and merged.

To avoid duplication of effort, you can respond to this thread on the knet-dev list indicating what item(s) you plan to work on. AutoGrad/Knet is developed by volunteers and any contribution is appreciated.

CarloLucibello commented 6 years ago

I guess we can tag a new release and close this issue

denizyuret commented 6 years ago

OK, I am tagging a new release if there is no objection.