Skip to content
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

Simply show implementations and make them round-trippable #732

Merged
merged 2 commits into from
Jun 26, 2024
Merged

Conversation

avik-pal
Copy link
Member

Also Fixes #730

Copy link

codecov bot commented Jun 26, 2024

Codecov Report

Attention: Patch coverage is 94.66667% with 4 lines in your changes missing coverage. Please review.

Project coverage is 96.96%. Comparing base (201bcb4) to head (be0789a).

Files Patch % Lines
src/layers/display.jl 92.68% 3 Missing ⚠️
src/layers/containers.jl 90.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #732      +/-   ##
==========================================
+ Coverage   93.50%   96.96%   +3.46%     
==========================================
  Files          53       53              
  Lines        2710     2703       -7     
==========================================
+ Hits         2534     2621      +87     
+ Misses        176       82      -94     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark Results

Benchmark suite Current: be0789a Previous: 201bcb4 Ratio
Dense(2 => 2)/cpu/reverse/ReverseDiff (compiled)/(2, 128) 3678.25 ns 3650.5 ns 1.01
Dense(2 => 2)/cpu/reverse/Zygote/(2, 128) 7163.4 ns 7147.4 ns 1.00
Dense(2 => 2)/cpu/reverse/Tracker/(2, 128) 20900 ns 20859 ns 1.00
Dense(2 => 2)/cpu/reverse/ReverseDiff/(2, 128) 9896.6 ns 9686 ns 1.02
Dense(2 => 2)/cpu/reverse/Flux/(2, 128) 9073 ns 8918.6 ns 1.02
Dense(2 => 2)/cpu/reverse/SimpleChains/(2, 128) 4459.625 ns 4490.875 ns 0.99
Dense(2 => 2)/cpu/reverse/Enzyme/(2, 128) 1160.5357142857142 ns 1158.7122302158273 ns 1.00
Dense(2 => 2)/cpu/forward/NamedTuple/(2, 128) 1127.5098684210525 ns 1102.9430379746836 ns 1.02
Dense(2 => 2)/cpu/forward/ComponentArray/(2, 128) 1187.8062015503876 ns 1185.8778625954199 ns 1.00
Dense(2 => 2)/cpu/forward/Flux/(2, 128) 1807.7045454545455 ns 1774.673076923077 ns 1.02
Dense(2 => 2)/cpu/forward/SimpleChains/(2, 128) 187.53641456582633 ns 180.36530324400564 ns 1.04
Dense(20 => 20)/cpu/reverse/ReverseDiff (compiled)/(20, 128) 17252 ns 17382 ns 0.99
Dense(20 => 20)/cpu/reverse/Zygote/(20, 128) 17022 ns 16822 ns 1.01
Dense(20 => 20)/cpu/reverse/Tracker/(20, 128) 39018.5 ns 38993 ns 1.00
Dense(20 => 20)/cpu/reverse/ReverseDiff/(20, 128) 29225 ns 29124.5 ns 1.00
Dense(20 => 20)/cpu/reverse/Flux/(20, 128) 21521 ns 19917 ns 1.08
Dense(20 => 20)/cpu/reverse/SimpleChains/(20, 128) 17964 ns 17302 ns 1.04
Dense(20 => 20)/cpu/reverse/Enzyme/(20, 128) 4321 ns 4309.571428571428 ns 1.00
Dense(20 => 20)/cpu/forward/NamedTuple/(20, 128) 3877.25 ns 3871 ns 1.00
Dense(20 => 20)/cpu/forward/ComponentArray/(20, 128) 3948.625 ns 3921 ns 1.01
Dense(20 => 20)/cpu/forward/Flux/(20, 128) 4896.285714285715 ns 4910.571428571428 ns 1.00
Dense(20 => 20)/cpu/forward/SimpleChains/(20, 128) 1678.1 ns 1665.1 ns 1.01
Conv((3, 3), 3 => 3)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 3, 128) 49951939.5 ns 47338691 ns 1.06
Conv((3, 3), 3 => 3)/cpu/reverse/Zygote/(64, 64, 3, 128) 57583577 ns 57480412.5 ns 1.00
Conv((3, 3), 3 => 3)/cpu/reverse/Tracker/(64, 64, 3, 128) 111810731 ns 97654644 ns 1.14
Conv((3, 3), 3 => 3)/cpu/reverse/ReverseDiff/(64, 64, 3, 128) 106912699 ns 103075718 ns 1.04
Conv((3, 3), 3 => 3)/cpu/reverse/Flux/(64, 64, 3, 128) 79250217 ns 107736609.5 ns 0.74
Conv((3, 3), 3 => 3)/cpu/reverse/SimpleChains/(64, 64, 3, 128) 11999695.5 ns 11991081 ns 1.00
Conv((3, 3), 3 => 3)/cpu/reverse/Enzyme/(64, 64, 3, 128) 17900841.5 ns 17673126 ns 1.01
Conv((3, 3), 3 => 3)/cpu/forward/NamedTuple/(64, 64, 3, 128) 7024803.5 ns 6987664.5 ns 1.01
Conv((3, 3), 3 => 3)/cpu/forward/ComponentArray/(64, 64, 3, 128) 6992818 ns 6942149 ns 1.01
Conv((3, 3), 3 => 3)/cpu/forward/Flux/(64, 64, 3, 128) 18390225 ns 18407953 ns 1.00
Conv((3, 3), 3 => 3)/cpu/forward/SimpleChains/(64, 64, 3, 128) 6395289 ns 6390084 ns 1.00
vgg16/cpu/reverse/Zygote/(32, 32, 3, 16) 743568242 ns 736390019 ns 1.01
vgg16/cpu/reverse/Zygote/(32, 32, 3, 64) 2544218411 ns 2556232776 ns 1.00
vgg16/cpu/reverse/Zygote/(32, 32, 3, 2) 148701766 ns 138860759 ns 1.07
vgg16/cpu/reverse/Tracker/(32, 32, 3, 16) 934092292 ns 912518521.5 ns 1.02
vgg16/cpu/reverse/Tracker/(32, 32, 3, 64) 3093842125 ns 3428397846 ns 0.90
vgg16/cpu/reverse/Tracker/(32, 32, 3, 2) 241855773.5 ns 224148545.5 ns 1.08
vgg16/cpu/reverse/Flux/(32, 32, 3, 16) 741501229 ns 823473223 ns 0.90
vgg16/cpu/reverse/Flux/(32, 32, 3, 64) 2839856661 ns 2885894804 ns 0.98
vgg16/cpu/reverse/Flux/(32, 32, 3, 2) 133620530.5 ns 134372913 ns 0.99
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 16) 174325867.5 ns 173583355 ns 1.00
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 64) 645070040 ns 646634685.5 ns 1.00
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 2) 34942654 ns 45528041.5 ns 0.77
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 16) 164557313 ns 177533604.5 ns 0.93
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 64) 631864075 ns 641394326 ns 0.99
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 2) 30377881 ns 30391531 ns 1.00
vgg16/cpu/forward/Flux/(32, 32, 3, 16) 228101085 ns 214503540.5 ns 1.06
vgg16/cpu/forward/Flux/(32, 32, 3, 64) 821064376 ns 834317970 ns 0.98
vgg16/cpu/forward/Flux/(32, 32, 3, 2) 37649999 ns 40455986 ns 0.93
Conv((3, 3), 64 => 64)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 64, 128) 1242598936 ns 1297428518.5 ns 0.96
Conv((3, 3), 64 => 64)/cpu/reverse/Zygote/(64, 64, 64, 128) 1878179474 ns 1868119375 ns 1.01
Conv((3, 3), 64 => 64)/cpu/reverse/Tracker/(64, 64, 64, 128) 2487245906 ns 2546633861 ns 0.98
Conv((3, 3), 64 => 64)/cpu/reverse/ReverseDiff/(64, 64, 64, 128) 2622715854 ns 2710790492 ns 0.97
Conv((3, 3), 64 => 64)/cpu/reverse/Flux/(64, 64, 64, 128) 1874913441.5 ns 1943175994.5 ns 0.96
Conv((3, 3), 64 => 64)/cpu/reverse/Enzyme/(64, 64, 64, 128) 560256314 ns 563832707 ns 0.99
Conv((3, 3), 64 => 64)/cpu/forward/NamedTuple/(64, 64, 64, 128) 320759164 ns 320454436 ns 1.00
Conv((3, 3), 64 => 64)/cpu/forward/ComponentArray/(64, 64, 64, 128) 320217364 ns 320358731 ns 1.00
Conv((3, 3), 64 => 64)/cpu/forward/Flux/(64, 64, 64, 128) 371692956.5 ns 425257696 ns 0.87
Conv((3, 3), 1 => 1)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 1, 128) 11748330 ns 11931980.5 ns 0.98
Conv((3, 3), 1 => 1)/cpu/reverse/Zygote/(64, 64, 1, 128) 17856926 ns 17784808 ns 1.00
Conv((3, 3), 1 => 1)/cpu/reverse/Tracker/(64, 64, 1, 128) 19023639.5 ns 19142318 ns 0.99
Conv((3, 3), 1 => 1)/cpu/reverse/ReverseDiff/(64, 64, 1, 128) 23828287 ns 23824772 ns 1.00
Conv((3, 3), 1 => 1)/cpu/reverse/Flux/(64, 64, 1, 128) 17919800.5 ns 17879555 ns 1.00
Conv((3, 3), 1 => 1)/cpu/reverse/SimpleChains/(64, 64, 1, 128) 1168245.5 ns 1155146.5 ns 1.01
Conv((3, 3), 1 => 1)/cpu/reverse/Enzyme/(64, 64, 1, 128) 5860466 ns 5810938 ns 1.01
Conv((3, 3), 1 => 1)/cpu/forward/NamedTuple/(64, 64, 1, 128) 2055423 ns 2041686 ns 1.01
Conv((3, 3), 1 => 1)/cpu/forward/ComponentArray/(64, 64, 1, 128) 2037659 ns 2027835 ns 1.00
Conv((3, 3), 1 => 1)/cpu/forward/Flux/(64, 64, 1, 128) 2075799 ns 2070705 ns 1.00
Conv((3, 3), 1 => 1)/cpu/forward/SimpleChains/(64, 64, 1, 128) 198863 ns 200253.5 ns 0.99
Dense(200 => 200)/cpu/reverse/ReverseDiff (compiled)/(200, 128) 293009 ns 292977 ns 1.00
Dense(200 => 200)/cpu/reverse/Zygote/(200, 128) 266358.5 ns 266878 ns 1.00
Dense(200 => 200)/cpu/reverse/Tracker/(200, 128) 367089 ns 368157 ns 1.00
Dense(200 => 200)/cpu/reverse/ReverseDiff/(200, 128) 410439 ns 410711.5 ns 1.00
Dense(200 => 200)/cpu/reverse/Flux/(200, 128) 275085 ns 275168.5 ns 1.00
Dense(200 => 200)/cpu/reverse/SimpleChains/(200, 128) 407945 ns 408492 ns 1.00
Dense(200 => 200)/cpu/reverse/Enzyme/(200, 128) 83547 ns 83546 ns 1.00
Dense(200 => 200)/cpu/forward/NamedTuple/(200, 128) 81673.5 ns 81662 ns 1.00
Dense(200 => 200)/cpu/forward/ComponentArray/(200, 128) 82003 ns 82484 ns 0.99
Dense(200 => 200)/cpu/forward/Flux/(200, 128) 86753 ns 86782 ns 1.00
Dense(200 => 200)/cpu/forward/SimpleChains/(200, 128) 104516 ns 104606 ns 1.00
Conv((3, 3), 16 => 16)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 16, 128) 205899798 ns 208421898 ns 0.99
Conv((3, 3), 16 => 16)/cpu/reverse/Zygote/(64, 64, 16, 128) 324447007.5 ns 328357299 ns 0.99
Conv((3, 3), 16 => 16)/cpu/reverse/Tracker/(64, 64, 16, 128) 430307245 ns 438087101 ns 0.98
Conv((3, 3), 16 => 16)/cpu/reverse/ReverseDiff/(64, 64, 16, 128) 491376043 ns 482028613 ns 1.02
Conv((3, 3), 16 => 16)/cpu/reverse/Flux/(64, 64, 16, 128) 430672679 ns 420466128.5 ns 1.02
Conv((3, 3), 16 => 16)/cpu/reverse/SimpleChains/(64, 64, 16, 128) 331235688.5 ns 331561664 ns 1.00
Conv((3, 3), 16 => 16)/cpu/reverse/Enzyme/(64, 64, 16, 128) 102753540.5 ns 101008421.5 ns 1.02
Conv((3, 3), 16 => 16)/cpu/forward/NamedTuple/(64, 64, 16, 128) 44276074 ns 44201764 ns 1.00
Conv((3, 3), 16 => 16)/cpu/forward/ComponentArray/(64, 64, 16, 128) 43963100.5 ns 43850924 ns 1.00
Conv((3, 3), 16 => 16)/cpu/forward/Flux/(64, 64, 16, 128) 58204111.5 ns 70267104.5 ns 0.83
Conv((3, 3), 16 => 16)/cpu/forward/SimpleChains/(64, 64, 16, 128) 28721486 ns 28451329 ns 1.01
Dense(2000 => 2000)/cpu/reverse/ReverseDiff (compiled)/(2000, 128) 19374408 ns 19220147 ns 1.01
Dense(2000 => 2000)/cpu/reverse/Zygote/(2000, 128) 19537624 ns 19563388 ns 1.00
Dense(2000 => 2000)/cpu/reverse/Tracker/(2000, 128) 23376266 ns 23424325 ns 1.00
Dense(2000 => 2000)/cpu/reverse/ReverseDiff/(2000, 128) 24206588 ns 24284320.5 ns 1.00
Dense(2000 => 2000)/cpu/reverse/Flux/(2000, 128) 19635880 ns 19678588 ns 1.00
Dense(2000 => 2000)/cpu/reverse/Enzyme/(2000, 128) 6508811 ns 6539787 ns 1.00
Dense(2000 => 2000)/cpu/forward/NamedTuple/(2000, 128) 6526214 ns 6544056 ns 1.00
Dense(2000 => 2000)/cpu/forward/ComponentArray/(2000, 128) 6501532.5 ns 6516054 ns 1.00
Dense(2000 => 2000)/cpu/forward/Flux/(2000, 128) 6498952.5 ns 6507146.5 ns 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@avik-pal avik-pal force-pushed the ap/show branch 3 times, most recently from 72f5a69 to 5e4c8eb Compare June 26, 2024 05:53
@avik-pal avik-pal merged commit 10c785e into main Jun 26, 2024
53 checks passed
@avik-pal avik-pal deleted the ap/show branch June 26, 2024 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

custom show is often not valid julia syntax to reconstruct
1 participant