From cf652914dc351cbb2c4f2b4741aa5188bdd52186 Mon Sep 17 00:00:00 2001 From: Adrian Hill Date: Thu, 10 Oct 2024 12:13:43 +0200 Subject: [PATCH] Drop compatibility with pre-LTS versions (#174) * Drop compatibility with pre-LTS versions * Update README * Use StableRNGs.jl to stabilize random seeds in tests across Julia versions --- .github/workflows/ci.yml | 2 +- Project.toml | 2 +- README.md | 2 +- src/ExplainableAI.jl | 1 - src/compat.jl | 12 ------------ test/Project.toml | 2 +- test/references/cnn/GradCAM_max.jld2 | Bin 1057 -> 1095 bytes test/references/cnn/Gradient_max.jld2 | Bin 13102 -> 13127 bytes .../cnn/InputTimesGradient_max.jld2 | Bin 13102 -> 13127 bytes .../cnn/IntegratedGradients_max.jld2 | Bin 13102 -> 13127 bytes test/references/cnn/SmoothGrad_max.jld2 | Bin 13102 -> 13127 bytes test/runtests.jl | 5 ++--- test/test_batches.jl | 8 ++++---- test/test_cnn.jl | 7 ++++--- 14 files changed, 14 insertions(+), 27 deletions(-) delete mode 100644 src/compat.jl diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 48765303..a50bb307 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: version: - 'lts' - '1' - # - 'pre' # TODO: tests on pre-release version + - 'pre' steps: - uses: actions/checkout@v4 - uses: julia-actions/setup-julia@v2 diff --git a/Project.toml b/Project.toml index b65b8dc2..ef0e644c 100644 --- a/Project.toml +++ b/Project.toml @@ -22,4 +22,4 @@ Reexport = "1" Statistics = "<0.0.1, 1" XAIBase = "4" Zygote = "0.6" -julia = "1.6" +julia = "1.10" diff --git a/README.md b/README.md index e383bfd6..e08b9cd6 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ and [iNNvestigate][innvestigate-repo] for Keras models. [^1]: More specifically, models currently have to be differentiable with [Zygote.jl](https://github.com/FluxML/Zygote.jl). ## Installation -This package supports Julia ≥1.6. To install it, open the Julia REPL and run +This package supports Julia ≥1.10. To install it, open the Julia REPL and run ```julia-repl julia> ]add ExplainableAI ``` diff --git a/src/ExplainableAI.jl b/src/ExplainableAI.jl index f999b151..567971fd 100644 --- a/src/ExplainableAI.jl +++ b/src/ExplainableAI.jl @@ -14,7 +14,6 @@ using DifferentiationInterface: value_and_pullback using Zygote const DEFAULT_AD_BACKEND = AutoZygote() -include("compat.jl") include("bibliography.jl") include("input_augmentation.jl") include("gradient.jl") diff --git a/src/compat.jl b/src/compat.jl deleted file mode 100644 index aa98e07a..00000000 --- a/src/compat.jl +++ /dev/null @@ -1,12 +0,0 @@ -# https://github.com/JuliaLang/julia/pull/39794 -if VERSION < v"1.7.0-DEV.793" - export Returns - - struct Returns{V} <: Function - value::V - Returns{V}(value) where {V} = new{V}(value) - Returns(value) = new{Core.Typeof(value)}(value) - end - - (obj::Returns)(args...; kw...) = obj.value -end diff --git a/test/Project.toml b/test/Project.toml index 48d2ec4f..08f02773 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -8,6 +8,6 @@ JuliaFormatter = "98e50ef6-434e-11e9-1051-2b60c6c9e899" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" ReferenceTests = "324d217c-45ce-50fc-942e-d289b448e8cf" -Suppressor = "fd094767-a336-5f1f-9728-57cf17d0bbfb" +StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" XAIBase = "9b48221d-a747-4c1b-9860-46a1d8ba24a7" diff --git a/test/references/cnn/GradCAM_max.jld2 b/test/references/cnn/GradCAM_max.jld2 index 5031171ba544469025d62cb5495ddaba7f2d8d05..944423b1eb6bd0acdf38855ba2bf4fb944cd1b4f 100644 GIT binary patch delta 372 zcmZ3;ahzj#Lzpl8%*uLSe@XYpBE@tRp*?rOLG@u=T=MO}}zl39@T zy6Q^nZS!YYH%-#C=1PgSE=cINHen61W>O5d-eT8k?aiHRy*BZfwd5Z^>lf|m)>j+@ ztOe^2W?R4Mo@l-9L9%tkvx(N_YZq8+{kOB05sJ57`LNWwAuHE9tE$O5Xx%*P^sFB1 zmD#(jAAQNQ{^1sG-FBnGdWK(}^|z-JtkpkMSvy$OTg$%RYu%WWW?j9h&$?!dhxKiR z$<|+8Ct1hkbXpfDEVABuu*LdXYP0n$*B#a|s@c{i%W})Cc}qg9U*uOP&UMS%rNUMPZIi6FNb6dKuyt8^?{KqH>G!r`u>WWItsT#^dlEp*l$+1nzOCbD(mnx z%L0>`R-D%(t#Z=atu(^US~jySu`+Veu+lo)Wp(@2B8wiLMym_{6;@uEZ!ERDwpy{Y dpR?S1L6O(Wm3g0))>k2`S1ZrHn7n~`Isg!Gdk6pk diff --git a/test/references/cnn/Gradient_max.jld2 b/test/references/cnn/Gradient_max.jld2 index 8b774c417d40d9710a87cdf74d35b1d6b60fa631..88186245f4359c013802aef08382f222153749cf 100644 GIT binary patch literal 13127 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 literal 13102 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

8ZQ^&|7=KXTsj!wsr7Os8FU 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 literal 13102 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 S3H~o--?jhG7JR7R^#28$b8gfC diff --git a/test/references/cnn/IntegratedGradients_max.jld2 b/test/references/cnn/IntegratedGradients_max.jld2 index 01b02f2de0e22041d2fa9828116fd3677dbdf90d..f78ec5a215f92d40f08c929570b70a0397974d51 100644 GIT binary patch literal 13127 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 U{tuVn|5fe(ftwI;QqB4Q0*suCUjP6A literal 13102 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 Qm$dWU|7Y8BSbg&U0;gr7= v"1.10" - @info "Testing formalities..." + @testset verbose = true "Linting" begin @testset "Code formatting" begin @info "- running JuliaFormatter code formatting tests..." @test JuliaFormatter.format(ExplainableAI; verbose=false, overwrite=false) end @testset "Aqua.jl" begin - @info "- running Aqua.jl tests. These might print warnings from dependencies..." + @info "- running Aqua.jl tests..." Aqua.test_all(ExplainableAI; ambiguities=false) end @testset "JET tests" begin diff --git a/test/test_batches.jl b/test/test_batches.jl index 473073de..c7ba69ab 100644 --- a/test/test_batches.jl +++ b/test/test_batches.jl @@ -5,7 +5,7 @@ using Flux using Random using Distributions: Laplace -pseudorand(dims...) = rand(MersenneTwister(123), Float32, dims...) +pseudorand(dims...) = rand(StableRNG(123), Float32, dims...) ## Test `fuse_batchnorm` on Dense and Conv layers ins = 20 @@ -15,16 +15,16 @@ batchsize = 15 model = Chain(Dense(ins, 15, relu; init=pseudorand), Dense(15, outs, relu; init=pseudorand)) # Input 1 with batch dimension -input1 = rand(MersenneTwister(1), Float32, ins, 1) +input1 = rand(StableRNG(1), Float32, ins, 1) # Input 2 with batch dimension -input2 = rand(MersenneTwister(2), Float32, ins, 1) +input2 = rand(StableRNG(2), Float32, ins, 1) # Batch containing inputs 1 & 2 input_batch = cat(input1, input2; dims=2) ANALYZERS = Dict( "Gradient" => Gradient, "InputTimesGradient" => InputTimesGradient, - "SmoothGrad" => m -> SmoothGrad(m, 5, 0.1, MersenneTwister(123)), + "SmoothGrad" => m -> SmoothGrad(m, 5, 0.1, StableRNG(123)), "IntegratedGradients" => m -> IntegratedGradients(m, 5), "GradCAM" => m -> GradCAM(m[1], m[2]), ) diff --git a/test/test_cnn.jl b/test/test_cnn.jl index 6e7f6a82..b8ff8f30 100644 --- a/test/test_cnn.jl +++ b/test/test_cnn.jl @@ -4,21 +4,22 @@ using ReferenceTests using Flux using Random +using StableRNGs: StableRNG using JLD2 const GRADIENT_ANALYZERS = Dict( "InputTimesGradient" => InputTimesGradient, - "SmoothGrad" => m -> SmoothGrad(m, 5, 0.1, MersenneTwister(123)), + "SmoothGrad" => m -> SmoothGrad(m, 5, 0.1, StableRNG(123)), "IntegratedGradients" => m -> IntegratedGradients(m, 5), "GradCAM" => m -> GradCAM(m[1], m[2]), ) -pseudorand(dims...) = rand(MersenneTwister(123), Float32, dims...) +pseudorand(dims...) = rand(StableRNG(123), Float32, dims...) input_size = (32, 32, 3, 1) input = pseudorand(input_size) -init(dims...) = Flux.glorot_uniform(MersenneTwister(123), dims...) +init(dims...) = Flux.glorot_uniform(StableRNG(123), dims...) model = Chain( Chain(