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

StatsBase.transform fails on CuArray #426

Closed
sdewaele opened this issue Sep 14, 2020 · 7 comments
Closed

StatsBase.transform fails on CuArray #426

sdewaele opened this issue Sep 14, 2020 · 7 comments
Labels
bug Something isn't working

Comments

@sdewaele
Copy link
Contributor

The following code fails on a CuArray:

using CUDA
using StatsBase

A = 5randn(2,4).+2
t = fit(ZScoreTransform,A;dims=2)
Ac = cu(A)
Ag = StatsBase.transform(t,Ac)
Error message

┌ Warning: CUDA.jl only supports CUDNN 7.6 to 8.0
└ @ CUDA C:\Users\userid\.julia\packages\CUDA\dZvbp\src\initialization.jl:122
ERROR: GPU compilation of kernel broadcast_kernel(CUDA.CuKernelContext, LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}}, Base.Broadcast.Broadcasted{Nothing,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}},StatsBase.var"#186#187",Tuple{Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}}}}, Int64) failed
KernelError: passing and using non-bitstype argument

Argument 4 to your kernel function is of type Base.Broadcast.Broadcasted{Nothing,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}},StatsBase.var"#186#187",Tuple{Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}}}}, which is not isbits:
  .args is of type Tuple{Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}}} which is not isbits.
    .2 is of type Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}} which is not isbits.
      .x is of type LinearAlgebra.Adjoint{Float64,Array{Float64,1}} which is not isbits.
        .parent is of type Array{Float64,1} which is not isbits.
    .3 is of type Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}} which is not isbits.
      .x is of type LinearAlgebra.Adjoint{Float64,Array{Float64,1}} which is not isbits.
        .parent is of type Array{Float64,1} which is not isbits.

Passing non-isbits types is only allowed if they they are unused by the kernel.

Stacktrace:
 [1] check_invocation(::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams}, ::LLVM.Function) at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\validation.jl:75
 [2] macro expansion at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\driver.jl:240 [inlined]
 [3] macro expansion at C:\Users\userid\.julia\packages\TimerOutputs\dVnaw\src\TimerOutput.jl:206 [inlined]
 [4] codegen(::Symbol, ::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, strip::Bool, validate::Bool, only_entry::Bool) at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\driver.jl:239
 [5] compile(::Symbol, ::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, strip::Bool, validate::Bool, only_entry::Bool) at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\driver.jl:39
 [6] compile at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\driver.jl:35 [inlined]
 [7] _cufunction(::GPUCompiler.FunctionSpec{GPUArrays.var"#broadcast_kernel#18",Tuple{CUDA.CuKernelContext,LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Base.Broadcast.Broadcasted{Nothing,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}},StatsBase.var"#186#187",Tuple{Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}}}},Int64}}; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\userid\.julia\packages\CUDA\dZvbp\src\compiler\execution.jl:310
 [8] _cufunction at C:\Users\userid\.julia\packages\CUDA\dZvbp\src\compiler\execution.jl:304 [inlined]
 [9] check_cache(::typeof(CUDA._cufunction), ::GPUCompiler.FunctionSpec{GPUArrays.var"#broadcast_kernel#18",Tuple{CUDA.CuKernelContext,LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Base.Broadcast.Broadcasted{Nothing,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}},StatsBase.var"#186#187",Tuple{Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}}}},Int64}}, ::UInt64; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\cache.jl:24
 [10] broadcast_kernel at C:\Users\userid\.julia\packages\GPUArrays\eVYIC\src\host\broadcast.jl:60 [inlined]
 [11] cached_compilation(::typeof(CUDA._cufunction), ::GPUCompiler.FunctionSpec{GPUArrays.var"#broadcast_kernel#18",Tuple{CUDA.CuKernelContext,LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Base.Broadcast.Broadcasted{Nothing,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}},StatsBase.var"#186#187",Tuple{Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}}}},Int64}}, ::UInt64; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\cache.jl:0
 [12] cached_compilation at C:\Users\userid\.julia\packages\GPUCompiler\GKp4B\src\cache.jl:44 [inlined]
 [13] cufunction(::GPUArrays.var"#broadcast_kernel#18", ::Type{Tuple{CUDA.CuKernelContext,LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Base.Broadcast.Broadcasted{Nothing,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}},StatsBase.var"#186#187",Tuple{Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float32,CuDeviceArray{Float32,2,CUDA.AS.Global}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}},Base.Broadcast.Extruded{LinearAlgebra.Adjoint{Float64,Array{Float64,1}},Tuple{Bool,Bool},Tuple{Int64,Int64}}}},Int64}}; name::Nothing, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\userid\.julia\packages\CUDA\dZvbp\src\compiler\execution.jl:298
 [14] cufunction at C:\Users\userid\.julia\packages\CUDA\dZvbp\src\compiler\execution.jl:293 [inlined]
 [15] #launch_heuristic#838 at C:\Users\userid\.julia\packages\CUDA\dZvbp\src\gpuarrays.jl:19 [inlined]
 [16] launch_heuristic at C:\Users\userid\.julia\packages\CUDA\dZvbp\src\gpuarrays.jl:17 [inlined]
 [17] copyto! at C:\Users\userid\.julia\packages\GPUArrays\eVYIC\src\host\broadcast.jl:66 [inlined]
 [18] copyto! at .\broadcast.jl:864 [inlined]
 [19] materialize!(::LinearAlgebra.Adjoint{Float32,CuArray{Float32,2}}, ::Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2},Nothing,StatsBase.var"#186#187",Tuple{LinearAlgebra.Adjoint{Float32,CuArray{Float32,2}},LinearAlgebra.Adjoint{Float64,Array{Float64,1}},LinearAlgebra.Adjoint{Float64,Array{Float64,1}}}}) at .\broadcast.jl:823
 [20] broadcast!(::StatsBase.var"#186#187", ::LinearAlgebra.Adjoint{Float32,CuArray{Float32,2}}, ::LinearAlgebra.Adjoint{Float32,CuArray{Float32,2}}, ::LinearAlgebra.Adjoint{Float64,Array{Float64,1}}, ::LinearAlgebra.Adjoint{Float64,Array{Float64,1}}) at .\broadcast.jl:797
 [21] transform!(::LinearAlgebra.Adjoint{Float32,CuArray{Float32,2}}, ::ZScoreTransform{Float64}, ::LinearAlgebra.Adjoint{Float32,CuArray{Float32,2}}) at C:\Users\userid\.julia\packages\StatsBase\ZxhK8\src\transformations.jl:166
 [22] transform!(::CuArray{Float32,2}, ::ZScoreTransform{Float64}, ::CuArray{Float32,2}) at C:\Users\userid\.julia\packages\StatsBase\ZxhK8\src\transformations.jl:171
 [23] transform(::ZScoreTransform{Float64}, ::CuArray{Float32,2}) at C:\Users\userid\.julia\packages\StatsBase\ZxhK8\src\transformations.jl:21
 [24] top-level scope at C:\Users\userid\.julia\dev\MigrateAI\scripts\cu-norm-issue.jl:9
 [25] include(::String) at .\client.jl:439
 [26] top-level scope at REPL[1]:1

This condensed reproduction of the transform! code may facilitate debugging:

x = Ag
y = similar(x)
y = y' # ' because t.dims == 2
x = x' # ' because t.dims == 2
t_ = ZScoreTransform(t.len, 1, t.mean, t.scale)
m = t_.mean
s = t_.scale
broadcast!((x,m,s)->(x-m)/s, y, x, m', s')

The error occurs on this line in StatsBase.transform!.

I know that it is not too hard to write code from scratch for this type of normalisation. For example, see Flux.normalise does something similar, although I do want to use precomputed mean and scale, that is why I tried StatsBase. However:

  1. Doing controlled data normalization is common in machine learning so it would be nice to have something working out of the box.
  2. This problem may point at something more fundamental in CUDA.jl. Or perhaps, StatsBase?
Manifest.toml

# This file is machine-generated - editing it directly is not advised

[[AbstractFFTs]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "051c95d6836228d120f5f4b984dd5aba1624f716"
uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c"
version = "0.5.0"

[[AbstractTrees]]
deps = ["Markdown"]
git-tree-sha1 = "33e450545eaf7699da1a6e755f9ea65f14077a45"
uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c"
version = "0.3.3"

[[Adapt]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "0fac443759fa829ed8066db6cf1077d888bb6573"
uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
version = "2.0.2"

[[ArnoldiMethod]]
deps = ["DelimitedFiles", "LinearAlgebra", "Random", "SparseArrays", "StaticArrays", "Test"]
git-tree-sha1 = "2b6845cea546604fb4dca4e31414a6a59d39ddcd"
uuid = "ec485272-7323-5ecc-a04f-4719b315124d"
version = "0.0.4"

[[ArrayLayouts]]
deps = ["FillArrays", "LinearAlgebra"]
git-tree-sha1 = "951c3fc1ff93497c88fb1dfa893f4de55d0b38e3"
uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"
version = "0.3.8"

[[AxisAlgorithms]]
deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"]
git-tree-sha1 = "a4d07a1c313392a77042855df46c5f534076fab9"
uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950"
version = "1.0.0"

[[AxisArrays]]
deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"]
git-tree-sha1 = "f31f50712cbdf40ee8287f0443b57503e34122ef"
uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9"
version = "0.4.3"

[[Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"

[[BinaryProvider]]
deps = ["Libdl", "Logging", "SHA"]
git-tree-sha1 = "ecdec412a9abc8db54c0efc5548c64dfce072058"
uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232"
version = "0.5.10"

[[Blosc]]
deps = ["Blosc_jll"]
git-tree-sha1 = "84cf7d0f8fd46ca6f1b3e0305b4b4a37afe50fd6"
uuid = "a74b3585-a348-5f62-a45c-50e91977d574"
version = "0.7.0"

[[Blosc_jll]]
deps = ["Libdl", "Lz4_jll", "Pkg", "Zlib_jll", "Zstd_jll"]
git-tree-sha1 = "aa9ef39b54a168c3df1b2911e7797e4feee50fbe"
uuid = "0b7ba130-8d10-5ba8-a3d6-c5182647fed9"
version = "1.14.3+1"

[[Bzip2_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "03a44490020826950c68005cafb336e5ba08b7e8"
uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0"
version = "1.0.6+4"

[[CEnum]]
git-tree-sha1 = "215a9aa4a1f23fbd05b92769fdd62559488d70e9"
uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82"
version = "0.4.1"

[[CUDA]]
deps = ["AbstractFFTs", "Adapt", "BinaryProvider", "CEnum", "DataStructures", "ExprTools", "GPUArrays", "GPUCompiler", "LLVM", "Libdl", "LinearAlgebra", "Logging", "MacroTools", "NNlib", "Pkg", "Printf", "Random", "Reexport", "Requires", "SparseArrays", "Statistics", "TimerOutputs"]
git-tree-sha1 = "83bfd180e2f842f6d4ee315a6db8665e9aa0c19b"
uuid = "052768ef-5323-5732-b1bb-66c8b64840ba"
version = "1.3.3"

[[CatIndices]]
deps = ["CustomUnitRanges", "OffsetArrays"]
git-tree-sha1 = "0c91e4fcda51bbd881c5d49ef784460750abcac0"
uuid = "aafaddc9-749c-510e-ac4f-586e18779b91"
version = "0.2.1"

[[ChainRules]]
deps = ["ChainRulesCore", "LinearAlgebra", "Random", "Reexport", "Requires", "Statistics"]
git-tree-sha1 = "6e7424bc42e222570cc8d588c501349070802b3f"
uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2"
version = "0.7.18"

[[ChainRulesCore]]
deps = ["LinearAlgebra", "MuladdMacro"]
git-tree-sha1 = "ac64a416997ae87eb86550020d0607ff608253d1"
uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
version = "0.9.10"

[[Clustering]]
deps = ["Distances", "LinearAlgebra", "NearestNeighbors", "Printf", "SparseArrays", "Statistics", "StatsBase"]
git-tree-sha1 = "b11c8d607af357776a046889a7c32567d05f1319"
uuid = "aaaa29a8-35af-508c-8bc3-b662a17a0fe5"
version = "0.14.1"

[[CodecZlib]]
deps = ["TranscodingStreams", "Zlib_jll"]
git-tree-sha1 = "ded953804d019afa9a3f98981d99b33e3db7b6da"
uuid = "944b1d66-785c-5afd-91f1-9de20f533193"
version = "0.7.0"

[[ColorSchemes]]
deps = ["ColorTypes", "Colors", "FixedPointNumbers", "Random", "StaticArrays"]
git-tree-sha1 = "7a15e3690529fd1042f0ab954dff7445b1efc8a5"
uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4"
version = "3.9.0"

[[ColorTypes]]
deps = ["FixedPointNumbers", "Random"]
git-tree-sha1 = "4bffea7ed1a9f0f3d1a131bbcd4b925548d75288"
uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f"
version = "0.10.9"

[[ColorVectorSpace]]
deps = ["ColorTypes", "Colors", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "StatsBase"]
git-tree-sha1 = "2ae827d936fa9d8e00dd5166563499c07c5672c5"
uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4"
version = "0.8.6"

[[Colors]]
deps = ["ColorTypes", "FixedPointNumbers", "InteractiveUtils", "Reexport"]
git-tree-sha1 = "5639e44833cfcf78c6a73fbceb4da75611d312cd"
uuid = "5ae59095-9a9b-59fe-a467-6f913c188581"
version = "0.12.3"

[[CommonSubexpressions]]
deps = ["MacroTools", "Test"]
git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7"
uuid = "bbf7d656-a473-5ed7-a52c-81e309532950"
version = "0.3.0"

[[CompilerSupportLibraries_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "7c4f882c41faa72118841185afc58a2eb00ef612"
uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"
version = "0.3.3+0"

[[ComputationalResources]]
git-tree-sha1 = "52cb3ec90e8a8bea0e62e275ba577ad0f74821f7"
uuid = "ed09eef8-17a6-5b46-8889-db040fac31e3"
version = "0.3.2"

[[ConstructionBase]]
git-tree-sha1 = "a2a6a5fea4d6f730ec4c18a76d27ec10e8ec1c50"
uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9"
version = "1.0.0"

[[Contour]]
deps = ["StaticArrays"]
git-tree-sha1 = "d05a3a25b762720d40246d5bedf518c9c2614ef5"
uuid = "d38c429a-6771-53c6-b99e-75d170b6e991"
version = "0.5.5"

[[CoordinateTransformations]]
deps = ["LinearAlgebra", "StaticArrays"]
git-tree-sha1 = "c230b1d94db9fdd073168830437e64b9db627fcb"
uuid = "150eb455-5306-5404-9cee-2592286d6298"
version = "0.6.0"

[[CpuId]]
deps = ["Markdown", "Test"]
git-tree-sha1 = "f0464e499ab9973b43c20f8216d088b61fda80c6"
uuid = "adafc99b-e345-5852-983c-f28acb93d879"
version = "0.2.2"

[[CustomUnitRanges]]
git-tree-sha1 = "0d42a23be3acfb3c58569b28ed3ab8bd67af5ced"
uuid = "dc8bdbbb-1ca9-579f-8c36-e416f6a65cce"
version = "1.0.0"

[[DataAPI]]
git-tree-sha1 = "176e23402d80e7743fc26c19c681bfb11246af32"
uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a"
version = "1.3.0"

[[DataStructures]]
deps = ["InteractiveUtils", "OrderedCollections"]
git-tree-sha1 = "88d48e133e6d3dd68183309877eac74393daa7eb"
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
version = "0.17.20"

[[DataValueInterfaces]]
git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6"
uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464"
version = "1.0.0"

[[Dates]]
deps = ["Printf"]
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"

[[DelimitedFiles]]
deps = ["Mmap"]
uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab"

[[DiffResults]]
deps = ["StaticArrays"]
git-tree-sha1 = "da24935df8e0c6cf28de340b958f6aac88eaa0cc"
uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5"
version = "1.0.2"

[[DiffRules]]
deps = ["NaNMath", "Random", "SpecialFunctions"]
git-tree-sha1 = "eb0c34204c8410888844ada5359ac8b96292cfd1"
uuid = "b552c78f-8df3-52c6-915a-8e097449b14b"
version = "1.0.1"

[[DimensionalData]]
deps = ["ConstructionBase", "Dates", "LinearAlgebra", "RecipesBase", "SparseArrays", "Statistics"]
git-tree-sha1 = "073856bd60f6468dcd8f6e5bf43057748195b4f5"
uuid = "0703355e-b756-11e9-17c0-8b28908087d0"
version = "0.12.1"

[[Distances]]
deps = ["LinearAlgebra", "Statistics"]
git-tree-sha1 = "23717536c81b63e250f682b0e0933769eecd1411"
uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7"
version = "0.8.2"

[[Distributed]]
deps = ["Random", "Serialization", "Sockets"]
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"

[[Distributions]]
deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns"]
git-tree-sha1 = "9c41285c57c6e0d73a21ed4b65f6eec34805f937"
uuid = "31c24e10-a181-5473-b8eb-7969acd0382f"
version = "0.23.8"

[[DocStringExtensions]]
deps = ["LibGit2", "Markdown", "Pkg", "Test"]
git-tree-sha1 = "c5714d9bcdba66389612dc4c47ed827c64112997"
uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
version = "0.8.2"

[[EllipsisNotation]]
git-tree-sha1 = "65dad386e877850e6fce4fc77f60fe75a468ce9d"
uuid = "da5c29d0-fa7d-589e-88eb-ea29b0a81949"
version = "0.4.0"

[[ExprTools]]
git-tree-sha1 = "7fce513fcda766962ff67c5596cb16c463dfd371"
uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04"
version = "0.1.2"

[[FFMPEG]]
deps = ["FFMPEG_jll", "x264_jll"]
git-tree-sha1 = "9a73ffdc375be61b0e4516d83d880b265366fe1f"
uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a"
version = "0.4.0"

[[FFMPEG_jll]]
deps = ["Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "LAME_jll", "LibVPX_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "Pkg", "Zlib_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"]
git-tree-sha1 = "13a934b9e74a8722bf1786c989de346a9602e695"
uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5"
version = "4.3.1+2"

[[FFTViews]]
deps = ["CustomUnitRanges", "FFTW"]
git-tree-sha1 = "70a0cfd9b1c86b0209e38fbfe6d8231fd606eeaf"
uuid = "4f61f5a4-77b1-5117-aa51-3ab5ef4ef0cd"
version = "0.3.1"

[[FFTW]]
deps = ["AbstractFFTs", "FFTW_jll", "IntelOpenMP_jll", "Libdl", "LinearAlgebra", "MKL_jll", "Reexport"]
git-tree-sha1 = "8b7c16b56936047ca41bf25effa137ae0b381ae8"
uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341"
version = "1.2.4"

[[FFTW_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "6c975cd606128d45d1df432fb812d6eb10fee00b"
uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a"
version = "3.3.9+5"

[[FileIO]]
deps = ["Pkg"]
git-tree-sha1 = "1e7e88a949b52e6f7f589041bd60928322414997"
uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
version = "1.4.1"

[[FillArrays]]
deps = ["LinearAlgebra", "Random", "SparseArrays"]
git-tree-sha1 = "4863cbb7910079369e258dee4add9d06ead5063a"
uuid = "1a297f60-69ca-5386-bcde-b61e274b549b"
version = "0.8.14"

[[FixedPointNumbers]]
deps = ["Statistics"]
git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc"
uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93"
version = "0.8.4"

[[Flux]]
deps = ["AbstractTrees", "Adapt", "CUDA", "CodecZlib", "Colors", "DelimitedFiles", "Functors", "Juno", "LinearAlgebra", "MacroTools", "NNlib", "Pkg", "Printf", "Random", "Reexport", "SHA", "Statistics", "StatsBase", "Test", "ZipFile", "Zygote"]
git-tree-sha1 = "ceb09ce8510ef31fd86a791bbd0e1d72a60f27d7"
uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c"
version = "0.11.1"

[[ForwardDiff]]
deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "NaNMath", "Random", "SpecialFunctions", "StaticArrays"]
git-tree-sha1 = "1d090099fb82223abc48f7ce176d3f7696ede36d"
uuid = "f6369f11-7733-5829-9624-2563aa707210"
version = "0.10.12"

[[FreeType2_jll]]
deps = ["Bzip2_jll", "Libdl", "Pkg", "Zlib_jll"]
git-tree-sha1 = "720eee04e3b496c15e5e2269669c2532fb5005c0"
uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7"
version = "2.10.1+4"

[[FriBidi_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "cfc3485a0a968263c789e314fca5d66daf75ed6c"
uuid = "559328eb-81f9-559d-9380-de523a88c83c"
version = "1.0.5+5"

[[Functors]]
deps = ["MacroTools"]
git-tree-sha1 = "f40adc6422f548176bb4351ebd29e4abf773040a"
uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196"
version = "0.1.0"

[[Future]]
deps = ["Random"]
uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820"

[[GPUArrays]]
deps = ["AbstractFFTs", "Adapt", "LinearAlgebra", "Printf", "Random", "Serialization"]
git-tree-sha1 = "600f45500060894487832c2f00c203fe3e0cb264"
uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7"
version = "5.1.0"

[[GPUCompiler]]
deps = ["DataStructures", "InteractiveUtils", "LLVM", "Libdl", "TimerOutputs", "UUIDs"]
git-tree-sha1 = "05097d81898c527e3bf218bb083ad0ead4378e5f"
uuid = "61eb1bfa-7361-4325-ad38-22787b887f55"
version = "0.6.1"

[[GR]]
deps = ["Base64", "DelimitedFiles", "HTTP", "JSON", "LinearAlgebra", "Printf", "Random", "Serialization", "Sockets", "Test", "UUIDs"]
git-tree-sha1 = "e26c513329675092535de20cc4bb9c579c8f85a0"
uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71"
version = "0.51.0"

[[GeometryBasics]]
deps = ["IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"]
git-tree-sha1 = "119f32f9c2b497b49cd3f7f513b358b82660294c"
uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326"
version = "0.2.15"

[[GeometryTypes]]
deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "StaticArrays"]
git-tree-sha1 = "34bfa994967e893ab2f17b864eec221b3521ba4d"
uuid = "4d00f742-c7ba-57c2-abde-4428a4b178cb"
version = "0.8.3"

[[GraphRecipes]]
deps = ["AbstractTrees", "GeometryTypes", "InteractiveUtils", "Interpolations", "LightGraphs", "LinearAlgebra", "NaNMath", "NetworkLayout", "PlotUtils", "RecipesBase", "SparseArrays", "Statistics"]
git-tree-sha1 = "a8619f8715d92cfc9d56a549a0d459bb655ae113"
uuid = "bd48cda9-67a9-57be-86fa-5b3c104eda73"
version = "0.5.4"

[[Graphics]]
deps = ["Colors", "LinearAlgebra", "NaNMath"]
git-tree-sha1 = "45d684ead5b65c043ad46bd5be750d61c39d7ef8"
uuid = "a2bd30eb-e257-5431-a919-1863eab51364"
version = "1.0.2"

[[HDF5]]
deps = ["Blosc", "HDF5_jll", "Libdl", "Mmap", "Random"]
git-tree-sha1 = "8f096f0820429f7865f6ecf6857cd81028a26230"
uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f"
version = "0.13.3"

[[HDF5_jll]]
deps = ["Libdl", "Pkg", "Zlib_jll"]
git-tree-sha1 = "85bd2e586a10ae0eab856125bf5245e0d36384a7"
uuid = "0234f1f7-429e-5d53-9886-15a909be8d59"
version = "1.10.5+5"

[[HTTP]]
deps = ["Base64", "Dates", "IniFile", "MbedTLS", "Sockets"]
git-tree-sha1 = "2ac03263ce44be4222342bca1c51c36ce7566161"
uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3"
version = "0.8.17"

[[IRTools]]
deps = ["InteractiveUtils", "MacroTools", "Test"]
git-tree-sha1 = "a8d88c05a23b44b4da6cf4fb5659e13ff95e0f47"
uuid = "7869d1d1-7146-5819-86e3-90919afe41df"
version = "0.4.1"

[[IdentityRanges]]
deps = ["OffsetArrays"]
git-tree-sha1 = "be8fcd695c4da16a1d6d0cd213cb88090a150e3b"
uuid = "bbac6d45-d8f3-5730-bfe4-7a449cd117ca"
version = "0.3.1"

[[ImageAxes]]
deps = ["AxisArrays", "ImageCore", "MappedArrays", "Reexport", "SimpleTraits"]
git-tree-sha1 = "6f6e8be05a46733c69209c8b5828c4e463ccd5f5"
uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac"
version = "0.6.5"

[[ImageContrastAdjustment]]
deps = ["ColorVectorSpace", "ImageCore", "ImageTransformations", "MappedArrays", "Parameters"]
git-tree-sha1 = "d22d89e03c8f617e0ae31886ca60e291b548cf59"
uuid = "f332f351-ec65-5f6a-b3d1-319c6670881a"
version = "0.3.5"

[[ImageCore]]
deps = ["Colors", "FixedPointNumbers", "Graphics", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "Reexport", "Requires"]
git-tree-sha1 = "8628794375a87e8006e489a8575ddbb98b779370"
uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534"
version = "0.8.16"

[[ImageDistances]]
deps = ["ColorVectorSpace", "Distances", "ImageCore", "LinearAlgebra", "MappedArrays", "Statistics"]
git-tree-sha1 = "cf9b02b9f5e33c768c223de6d8f7d1b6d0cf4136"
uuid = "51556ac3-7006-55f5-8cb3-34580c88182d"
version = "0.2.7"

[[ImageFiltering]]
deps = ["CatIndices", "ColorVectorSpace", "ComputationalResources", "DataStructures", "FFTViews", "FFTW", "ImageCore", "ImageMetadata", "LinearAlgebra", "MappedArrays", "OffsetArrays", "Requires", "StaticArrays", "Statistics", "TiledIteration"]
git-tree-sha1 = "0ba209ea8f3f1c4b2f9f3ba6b9f4355098d6ddfe"
uuid = "6a3955dd-da59-5b1f-98d4-e7296123deb5"
version = "0.6.14"

[[ImageIO]]
deps = ["FileIO", "PNGFiles"]
git-tree-sha1 = "c4ac89fbc5e653ca2f6863df774247305bdadcc0"
uuid = "82e4d734-157c-48bb-816b-45c225c6df19"
version = "0.3.0"

[[ImageMagick]]
deps = ["FileIO", "ImageCore", "ImageMagick_jll", "InteractiveUtils", "Libdl", "Pkg", "Random"]
git-tree-sha1 = "318342a5099a9c952b4de087344a2db831458c87"
uuid = "6218d12a-5da1-5696-b52f-db25d2ecc6d1"
version = "1.1.5"

[[ImageMagick_jll]]
deps = ["JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pkg", "Zlib_jll", "libpng_jll"]
git-tree-sha1 = "1c0a2295cca535fabaf2029062912591e9b61987"
uuid = "c73af94c-d91f-53ed-93a7-00f77d67a9d7"
version = "6.9.10-12+3"

[[ImageMetadata]]
deps = ["AxisArrays", "ColorVectorSpace", "ImageAxes", "ImageCore", "IndirectArrays"]
git-tree-sha1 = "c899f9bc8e4dc30da95628c88356355dd34f6108"
uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49"
version = "0.9.2"

[[ImageMorphology]]
deps = ["ColorVectorSpace", "ImageCore", "LinearAlgebra", "TiledIteration"]
git-tree-sha1 = "64ce92e15cc7750e8b4aa7500f80add029288cb2"
uuid = "787d08f9-d448-5407-9aad-5290dd7ab264"
version = "0.2.8"

[[ImageQualityIndexes]]
deps = ["ColorVectorSpace", "ImageCore", "ImageDistances", "ImageFiltering", "MappedArrays", "Statistics"]
git-tree-sha1 = "3af30042a8fe85612a6a106cb20ca2fa1eb67bd6"
uuid = "2996bd0c-7a13-11e9-2da2-2f5ce47296a9"
version = "0.1.4"

[[ImageSegmentation]]
deps = ["Clustering", "DataStructures", "Distances", "ImageFiltering", "Images", "LightGraphs", "LinearAlgebra", "RegionTrees", "SimpleWeightedGraphs", "StaticArrays", "Statistics"]
git-tree-sha1 = "3837584c12ac9170f2431c3423c2df430c386214"
uuid = "80713f31-8817-5129-9cf8-209ff8fb23e1"
version = "1.4.5"

[[ImageShow]]
deps = ["Base64", "FileIO", "ImageCore", "Requires"]
git-tree-sha1 = "c9df184bc7c2e665f971079174aabb7d18f1845f"
uuid = "4e3cecfd-b093-5904-9786-8bbb286a6a31"
version = "0.2.3"

[[ImageTransformations]]
deps = ["AxisAlgorithms", "ColorVectorSpace", "CoordinateTransformations", "IdentityRanges", "ImageCore", "Interpolations", "OffsetArrays", "Rotations", "StaticArrays"]
git-tree-sha1 = "5a0207dafba64650268bb5718875c0eea441e1ee"
uuid = "02fcd773-0e25-5acc-982a-7f6622650795"
version = "0.8.6"

[[Images]]
deps = ["AxisArrays", "Base64", "ColorVectorSpace", "FileIO", "Graphics", "ImageAxes", "ImageContrastAdjustment", "ImageCore", "ImageDistances", "ImageFiltering", "ImageMetadata", "ImageMorphology", "ImageQualityIndexes", "ImageShow", "ImageTransformations", "IndirectArrays", "MappedArrays", "OffsetArrays", "Random", "Reexport", "SparseArrays", "StaticArrays", "Statistics", "StatsBase", "TiledIteration"]
git-tree-sha1 = "e070bf8f53739d9754cf51a8373a4319fbc7b696"
uuid = "916415d5-f1e6-5110-898d-aaa5f9f070e0"
version = "0.22.4"

[[IndirectArrays]]
git-tree-sha1 = "c2a145a145dc03a7620af1444e0264ef907bd44f"
uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959"
version = "0.5.1"

[[Inflate]]
git-tree-sha1 = "f5fc07d4e706b84f72d54eedcc1c13d92fb0871c"
uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9"
version = "0.1.2"

[[IniFile]]
deps = ["Test"]
git-tree-sha1 = "098e4d2c533924c921f9f9847274f2ad89e018b8"
uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f"
version = "0.5.0"

[[IntelOpenMP_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "fb8e1c7a5594ba56f9011310790e03b5384998d6"
uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0"
version = "2018.0.3+0"

[[InteractiveUtils]]
deps = ["Markdown"]
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"

[[Interpolations]]
deps = ["AxisAlgorithms", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"]
git-tree-sha1 = "2b7d4e9be8b74f03115e64cf36ed2f48ae83d946"
uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59"
version = "0.12.10"

[[IntervalSets]]
deps = ["Dates", "EllipsisNotation", "Statistics"]
git-tree-sha1 = "3b1cef135bc532b3c3401b309e1b8a2a2ba26af5"
uuid = "8197267c-284f-5f27-9208-e0e47529a953"
version = "0.5.1"

[[IterTools]]
git-tree-sha1 = "05110a2ab1fc5f932622ffea2a003221f4782c18"
uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e"
version = "1.3.0"

[[IteratorInterfaceExtensions]]
git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856"
uuid = "82899510-4779-5014-852e-03e436cf321d"
version = "1.0.0"

[[JLD2]]
deps = ["CodecZlib", "DataStructures", "FileIO", "Mmap", "Pkg", "Printf", "UUIDs"]
git-tree-sha1 = "9353b717ee4e27beab4e902c92a06bb5f160d2cf"
uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819"
version = "0.1.14"

[[JSON]]
deps = ["Dates", "Mmap", "Parsers", "Unicode"]
git-tree-sha1 = "81690084b6198a2e1da36fcfda16eeca9f9f24e4"
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
version = "0.21.1"

[[JpegTurbo_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "76e28bf35d0c179531b11e254f66bbcc1fd268ca"
uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8"
version = "2.0.1+2"

[[Juno]]
deps = ["Base64", "Logging", "Media", "Profile"]
git-tree-sha1 = "90976c3ab792a98d240d42f9df07420ccfc60668"
uuid = "e5e0dc1b-0480-54bc-9374-aad01c23163d"
version = "0.8.3"

[[LAME_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "a7999edc634307964d5651265ebf7c2e14b4ef91"
uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d"
version = "3.100.0+2"

[[LLVM]]
deps = ["CEnum", "Libdl", "Printf", "Unicode"]
git-tree-sha1 = "a662366a5d485dee882077e8da3e1a95a86d097f"
uuid = "929cbde3-209d-540e-8aea-75f648917ca0"
version = "2.0.0"

[[LibGit2]]
deps = ["Printf"]
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"

[[LibVPX_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "e02378f5707d0f94af22b99e4aba798e20368f6e"
uuid = "dd192d2f-8180-539f-9fb4-cc70b1dcf69a"
version = "1.9.0+0"

[[Libdl]]
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"

[[Libtiff_jll]]
deps = ["JpegTurbo_jll", "Libdl", "Pkg", "Zlib_jll", "Zstd_jll"]
git-tree-sha1 = "84ad722d8b9c6d3b3ca3a067d1da12b641352584"
uuid = "89763e89-9b03-5906-acba-b20f662cd828"
version = "4.1.0+1"

[[LightGraphs]]
deps = ["ArnoldiMethod", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"]
git-tree-sha1 = "6f85a35d2377cb2db1bc448ed0d6340d2bb1ea64"
uuid = "093fc24a-ae57-5d10-9952-331d41423f4d"
version = "1.3.3"

[[LinearAlgebra]]
deps = ["Libdl"]
uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"

[[Logging]]
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"

[[LoopVectorization]]
deps = ["DocStringExtensions", "LinearAlgebra", "OffsetArrays", "SIMDPirates", "SLEEFPirates", "UnPack", "VectorizationBase"]
git-tree-sha1 = "3242a8f411e19eda9adc49d0b877681975c11375"
uuid = "bdcacae8-1622-11e9-2a5c-532679323890"
version = "0.8.26"

[[Lz4_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "51b1db0732bbdcfabb60e36095cc3ed9c0016932"
uuid = "5ced341a-0733-55b8-9ab6-a4889d929147"
version = "1.9.2+2"

[[MKL_jll]]
deps = ["IntelOpenMP_jll", "Libdl", "Pkg"]
git-tree-sha1 = "eb540ede3aabb8284cb482aa41d00d6ca850b1f8"
uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7"
version = "2020.2.254+0"

[[MacroTools]]
deps = ["Markdown", "Random"]
git-tree-sha1 = "f7d2e3f654af75f01ec49be82c231c382214223a"
uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
version = "0.5.5"

[[MappedArrays]]
git-tree-sha1 = "e2a02fe7ee86a10c707ff1756ab1650b40b140bb"
uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900"
version = "0.2.2"

[[Markdown]]
deps = ["Base64"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"

[[MbedTLS]]
deps = ["Dates", "MbedTLS_jll", "Random", "Sockets"]
git-tree-sha1 = "426a6978b03a97ceb7ead77775a1da066343ec6e"
uuid = "739be429-bea8-5141-9913-cc70e7f3736d"
version = "1.0.2"

[[MbedTLS_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "c0b1286883cac4e2b617539de41111e0776d02e8"
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
version = "2.16.8+0"

[[Measures]]
git-tree-sha1 = "e498ddeee6f9fdb4551ce855a46f54dbd900245f"
uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e"
version = "0.3.1"

[[Media]]
deps = ["MacroTools", "Test"]
git-tree-sha1 = "75a54abd10709c01f1b86b84ec225d26e840ed58"
uuid = "e89f7d12-3494-54d1-8411-f7d8b9ae1f27"
version = "0.5.0"

[[MetaGraphs]]
deps = ["JLD2", "LightGraphs", "Random"]
git-tree-sha1 = "8900d368fa44bd61c7e598d6a0f577e347f3cf67"
uuid = "626554b9-1ddb-594c-aa3c-2596fe9399a5"
version = "0.6.5"

[[Missings]]
deps = ["DataAPI"]
git-tree-sha1 = "ed61674a0864832495ffe0a7e889c0da76b0f4c8"
uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28"
version = "0.4.4"

[[Mmap]]
uuid = "a63ad114-7e13-5084-954f-fe012c677804"

[[MosaicViews]]
deps = ["MappedArrays", "OffsetArrays", "PaddedViews"]
git-tree-sha1 = "29d121f9e7a6cf081278029121ed90e1f3b33de8"
uuid = "e94cdb99-869f-56ef-bcf0-1ae2bcbe0389"
version = "0.2.3"

[[MuladdMacro]]
git-tree-sha1 = "c6190f9a7fc5d9d5915ab29f2134421b12d24a68"
uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221"
version = "0.2.2"

[[NNlib]]
deps = ["Libdl", "LinearAlgebra", "Pkg", "Requires", "Statistics"]
git-tree-sha1 = "8ec4693a5422f0b064ce324f59351f24aa474893"
uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd"
version = "0.7.4"

[[NaNMath]]
git-tree-sha1 = "c84c576296d0e2fbb3fc134d3e09086b3ea617cd"
uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
version = "0.3.4"

[[NearestNeighbors]]
deps = ["Distances", "StaticArrays"]
git-tree-sha1 = "8bc6180f328f3c0ea2663935db880d34c57d6eae"
uuid = "b8a86587-4115-5ab1-83bc-aa920d37bbce"
version = "0.4.4"

[[NetworkLayout]]
deps = ["DelimitedFiles", "GeometryTypes", "LinearAlgebra", "SparseArrays", "Test"]
git-tree-sha1 = "adde9ad01842a4f62c3724b8707bed90293f0f3f"
uuid = "46757867-2c16-5918-afeb-47bfcb05e46a"
version = "0.2.0"

[[OffsetArrays]]
git-tree-sha1 = "663d3402efa943c95f4736fa7b462e9dd97be1a9"
uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881"
version = "1.2.0"

[[Ogg_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "4c3275cda1ba99d1244d0b82a9d0ca871c3cf66b"
uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051"
version = "1.3.4+1"

[[OpenSSL_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "997359379418d233767f926ea0c43f0e731735c0"
uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95"
version = "1.1.1+5"

[[OpenSpecFun_jll]]
deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"]
git-tree-sha1 = "d51c416559217d974a1113522d5919235ae67a87"
uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e"
version = "0.5.3+3"

[[Opus_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "cc90a125aa70dbb069adbda2b913b02cf2c5f6fe"
uuid = "91d4177d-7536-5919-b921-800302f37372"
version = "1.3.1+2"

[[OrderedCollections]]
git-tree-sha1 = "293b70ac1780f9584c89268a6e2a560d938a7065"
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
version = "1.3.0"

[[PDMats]]
deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse", "Test"]
git-tree-sha1 = "b3405086eb6a974eba1958923d46bc0e1c2d2d63"
uuid = "90014a1f-27ba-587c-ab20-58faa44d9150"
version = "0.10.0"

[[PNGFiles]]
deps = ["CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"]
git-tree-sha1 = "2252a42725b28193740fdbed5d85578ac642a074"
uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883"
version = "0.3.1"

[[PaddedViews]]
deps = ["OffsetArrays"]
git-tree-sha1 = "100195a79b577d5747db98bf1732c3686285fa1e"
uuid = "5432bcbf-9aad-5242-b902-cca2824c8663"
version = "0.5.5"

[[Parameters]]
deps = ["OrderedCollections", "UnPack"]
git-tree-sha1 = "38b2e970043613c187bd56a995fe2e551821eb4a"
uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a"
version = "0.12.1"

[[Parsers]]
deps = ["Dates", "Test"]
git-tree-sha1 = "8077624b3c450b15c087944363606a6ba12f925e"
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
version = "1.0.10"

[[Pkg]]
deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"

[[PlotThemes]]
deps = ["PlotUtils", "Requires", "Statistics"]
git-tree-sha1 = "c6f5ea535551b3b16835134697f0c65d06c94b91"
uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a"
version = "2.0.0"

[[PlotUtils]]
deps = ["ColorSchemes", "Colors", "Dates", "Printf", "Random", "Reexport", "Statistics"]
git-tree-sha1 = "8d23333aee2e2733a5cd4e1985462df8203f47f7"
uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043"
version = "1.0.6"

[[Plots]]
deps = ["Base64", "Contour", "Dates", "FFMPEG", "FixedPointNumbers", "GR", "GeometryBasics", "GeometryTypes", "JSON", "LinearAlgebra", "Measures", "NaNMath", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "Requires", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs"]
git-tree-sha1 = "0a9119948a55993312c46d40b3f26387e4dd35e9"
uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
version = "1.5.9"

[[Printf]]
deps = ["Unicode"]
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"

[[Profile]]
deps = ["Printf"]
uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79"

[[ProgressMeter]]
deps = ["Distributed", "Printf"]
git-tree-sha1 = "2de4cddc0ceeddafb6b143b5b6cd9c659b64507c"
uuid = "92933f4c-e287-5a05-a399-4b506db050ca"
version = "1.3.2"

[[QuadGK]]
deps = ["DataStructures", "LinearAlgebra"]
git-tree-sha1 = "12fbe86da16df6679be7521dfb39fbc861e1dc7b"
uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc"
version = "2.4.1"

[[REPL]]
deps = ["InteractiveUtils", "Markdown", "Sockets"]
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"

[[Random]]
deps = ["Serialization"]
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"

[[RangeArrays]]
git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5"
uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d"
version = "0.3.2"

[[Ratios]]
git-tree-sha1 = "37d210f612d70f3f7d57d488cb3b6eff56ad4e41"
uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439"
version = "0.4.0"

[[RecipesBase]]
git-tree-sha1 = "6ee6c35fe69e79e17c455a386c1ccdc66d9f7da4"
uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
version = "1.1.0"

[[RecipesPipeline]]
deps = ["Dates", "NaNMath", "PlotUtils", "RecipesBase"]
git-tree-sha1 = "4a325c9bcc2d8e62a8f975b9666d0251d53b63b9"
uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c"
version = "0.1.13"

[[Reexport]]
deps = ["Pkg"]
git-tree-sha1 = "7b1d07f411bc8ddb7977ec7f377b97b158514fe0"
uuid = "189a3867-3050-52da-a836-e630ba90ab69"
version = "0.2.0"

[[RegionTrees]]
deps = ["IterTools", "LinearAlgebra", "StaticArrays"]
git-tree-sha1 = "c103368232a786cc6f73480842bc471eb24c8fed"
uuid = "dee08c22-ab7f-5625-9660-a9af2021b33f"
version = "0.3.1"

[[Requires]]
deps = ["UUIDs"]
git-tree-sha1 = "8c08d0c7812169e438a8478dae2a529377ad13f7"
uuid = "ae029012-a4dd-5104-9daa-d747884805df"
version = "1.0.2"

[[Rmath]]
deps = ["Random", "Rmath_jll"]
git-tree-sha1 = "86c5647b565873641538d8f812c04e4c9dbeb370"
uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa"
version = "0.6.1"

[[Rmath_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "d76185aa1f421306dec73c057aa384bad74188f0"
uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f"
version = "0.2.2+1"

[[Rotations]]
deps = ["LinearAlgebra", "StaticArrays", "Statistics"]
git-tree-sha1 = "445b72242dbdecba9bfc42034daafdd901bbf6a9"
uuid = "6038ab10-8711-5258-84ad-4b1120ba62dc"
version = "1.0.1"

[[SHA]]
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"

[[SIMDPirates]]
deps = ["VectorizationBase"]
git-tree-sha1 = "450d163d3279a1d35e3aad3352a5167ef21b84a4"
uuid = "21efa798-c60a-11e8-04d3-e1a92915a26a"
version = "0.8.25"

[[SLEEFPirates]]
deps = ["Libdl", "SIMDPirates", "VectorizationBase"]
git-tree-sha1 = "67ae90a18aa8c22bf159318300e765fbd89ddf6e"
uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa"
version = "0.5.5"

[[SegyIO]]
deps = ["Distributed", "Printf", "Test"]
git-tree-sha1 = "4292ac6643d8a21a9f9b7c099b9c92df06572178"
uuid = "157a0f19-4d44-4de5-a0d0-07e2f0ac4dfa"
version = "0.7.3"

[[Serialization]]
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"

[[SharedArrays]]
deps = ["Distributed", "Mmap", "Random", "Serialization"]
uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383"

[[Showoff]]
deps = ["Dates"]
git-tree-sha1 = "e032c9df551fb23c9f98ae1064de074111b7bc39"
uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f"
version = "0.3.1"

[[SimpleTraits]]
deps = ["InteractiveUtils", "MacroTools"]
git-tree-sha1 = "daf7aec3fe3acb2131388f93a4c409b8c7f62226"
uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d"
version = "0.9.3"

[[SimpleWeightedGraphs]]
deps = ["LightGraphs", "LinearAlgebra", "Markdown", "SparseArrays", "Test"]
git-tree-sha1 = "f3f7396c2d5e9d4752357894889a87340262f904"
uuid = "47aef6b3-ad0c-573a-a1e2-d07658019622"
version = "1.1.1"

[[Sockets]]
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"

[[SortingAlgorithms]]
deps = ["DataStructures", "Random", "Test"]
git-tree-sha1 = "03f5898c9959f8115e30bc7226ada7d0df554ddd"
uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c"
version = "0.3.1"

[[SparseArrays]]
deps = ["LinearAlgebra", "Random"]
uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"

[[SpecialFunctions]]
deps = ["OpenSpecFun_jll"]
git-tree-sha1 = "d8d8b8a9f4119829410ecd706da4cc8594a1e020"
uuid = "276daf66-3868-5448-9aa4-cd146d93841b"
version = "0.10.3"

[[StaticArrays]]
deps = ["LinearAlgebra", "Random", "Statistics"]
git-tree-sha1 = "016d1e1a00fabc556473b07161da3d39726ded35"
uuid = "90137ffa-7385-5640-81b9-e52037218182"
version = "0.12.4"

[[Statistics]]
deps = ["LinearAlgebra", "SparseArrays"]
uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"

[[StatsBase]]
deps = ["DataAPI", "DataStructures", "LinearAlgebra", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics"]
git-tree-sha1 = "d72a47c47c522e283db774fc8c459dd5ed773710"
uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
version = "0.33.1"

[[StatsFuns]]
deps = ["Rmath", "SpecialFunctions"]
git-tree-sha1 = "04a5a8e6ab87966b43f247920eab053fd5fdc925"
uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c"
version = "0.9.5"

[[StructArrays]]
deps = ["Adapt", "DataAPI", "Tables"]
git-tree-sha1 = "8099ed9fb90b6e754d6ba8c6ed8670f010eadca0"
uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a"
version = "0.4.4"

[[SuiteSparse]]
deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"]
uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9"

[[TableTraits]]
deps = ["IteratorInterfaceExtensions"]
git-tree-sha1 = "b1ad568ba658d8cbb3b892ed5380a6f3e781a81e"
uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c"
version = "1.0.0"

[[Tables]]
deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "TableTraits", "Test"]
git-tree-sha1 = "b7f762e9820b7fab47544c36f26f54ac59cf8abf"
uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"
version = "1.0.5"

[[Test]]
deps = ["Distributed", "InteractiveUtils", "Logging", "Random"]
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[[TiledIteration]]
deps = ["OffsetArrays"]
git-tree-sha1 = "98693daea9bb49aba71eaad6b168b152d2310358"
uuid = "06e1c1a7-607b-532d-9fad-de7d9aa2abac"
version = "0.2.4"

[[TimerOutputs]]
deps = ["Printf"]
git-tree-sha1 = "f458ca23ff80e46a630922c555d838303e4b9603"
uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f"
version = "0.5.6"

[[TranscodingStreams]]
deps = ["Random", "Test"]
git-tree-sha1 = "7c53c35547de1c5b9d46a4797cf6d8253807108c"
uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa"
version = "0.9.5"

[[UUIDs]]
deps = ["Random", "SHA"]
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"

[[UnPack]]
git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b"
uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed"
version = "1.0.2"

[[Unicode]]
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"

[[VectorizationBase]]
deps = ["CpuId", "Libdl", "LinearAlgebra"]
git-tree-sha1 = "03e2fbb479a1ea350398195b6fbf439bae0f8260"
uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f"
version = "0.12.33"

[[WoodburyMatrices]]
deps = ["LinearAlgebra", "SparseArrays"]
git-tree-sha1 = "28ffe06d28b1ba8fdb2f36ec7bb079fac81bac0d"
uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6"
version = "0.5.2"

[[ZipFile]]
deps = ["Libdl", "Printf", "Zlib_jll"]
git-tree-sha1 = "254975fef2fc526583bb9b7c9420fe66ffe09f2f"
uuid = "a5390f91-8eb1-5f08-bee0-b1d1ffed6cea"
version = "0.9.2"

[[Zlib_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "fdd89e5ab270ea0f2a0174bd9093e557d06d4bfa"
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
version = "1.2.11+16"

[[Zstd_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "4de91f4313d9e88162d461e282fe3066ab3a3c09"
uuid = "3161d3a3-bdf6-5164-811a-617609db77b4"
version = "1.4.5+1"

[[Zygote]]
deps = ["AbstractFFTs", "ArrayLayouts", "ChainRules", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "Future", "IRTools", "InteractiveUtils", "LinearAlgebra", "LoopVectorization", "MacroTools", "NNlib", "NaNMath", "Random", "Requires", "SpecialFunctions", "Statistics", "ZygoteRules"]
git-tree-sha1 = "0079d92995b0fbcffd5d475d49ec8ca49375c471"
uuid = "e88e6eb3-aa80-5325-afca-941959d7151f"
version = "0.5.4"

[[ZygoteRules]]
deps = ["MacroTools"]
git-tree-sha1 = "b3b4882cc9accf6731a08cc39543fbc6b669dca8"
uuid = "700de1a5-db45-46bc-99cf-38207098b444"
version = "0.2.0"

[[libass_jll]]
deps = ["Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "Libdl", "Pkg", "Zlib_jll"]
git-tree-sha1 = "f02d0db58888592e98c5f4953cef620ce9274eee"
uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0"
version = "0.14.0+3"

[[libfdk_aac_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "e17b4513993b4413d31cffd1b36a63625ebbc3d3"
uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280"
version = "0.1.6+3"

[[libpng_jll]]
deps = ["Libdl", "Pkg", "Zlib_jll"]
git-tree-sha1 = "0a93f3eae5b80f08dc789e549657c199f1da6417"
uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f"
version = "1.6.37+5"

[[libvorbis_jll]]
deps = ["Libdl", "Ogg_jll", "Pkg"]
git-tree-sha1 = "8014e1c1033009edcfe820ec25877a9f1862ba4c"
uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a"
version = "1.3.6+5"

[[x264_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "e496625b900df1b02ab0e02fad316b77446616ef"
uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a"
version = "2020.7.14+1"

[[x265_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "ac7d44fa1639a780d0ae79ca1a5a7f4181131825"
uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76"
version = "3.0.0+2"

Version information:

CUDA 1.3.3
StatsBase v0.33.1

julia> versioninfo()
Julia Version 1.4.0
Commit b8e9a9ecc6 (2020-03-21 16:36 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, skylake)
Environment:
  JULIA_CUDA_USE_BINARYBUILDER = false
  JULIA_NUM_THREADS = 5

Cuda version information:

CUDA toolkit 10.1.243, local installation
CUDA driver 10.1.0
NVIDIA driver 426.0.0

Libraries:
- CUBLAS: 10.2.1
- CURAND: 10.1.1
- CUFFT: 10.1.1
- CUSOLVER: 10.2.0
- CUSPARSE: 10.3.0
- CUPTI: 12.0.0
- NVML: 10.0.0+426.0
- CUDNN: 7.0.5 (for CUDA 9.1.0)
- CUTENSOR: missing

Toolchain:
- Julia: 1.4.0
- LLVM: 8.0.1
- PTX ISA support: 3.2, 4.0, 4.1, 4.2, 4.3, 5.0, 6.0, 6.1, 6.3
- Device support: sm_30, sm_32, sm_35, sm_37, sm_50, sm_52, sm_53, sm_60, sm_61, sm_62, sm_70, sm_72, sm_75

Environment:
- JULIA_CUDA_USE_BINARYBUILDER: false

1 device:
  0: Quadro P2000 (sm_61, 3.867 GiB / 4.000 GiB available)

NOTE: I have also reproduced the issue in Julia 1.5.0 on Linux, on a system where the CUDA.jl warning below does not occur and CUDA binaries were downloaded with binarybuilder.

@sdewaele sdewaele added the bug Something isn't working label Sep 14, 2020
@sdewaele
Copy link
Contributor Author

I figured it out myself - the issue is caused by the fact that the transform mean and scale are on the CPU. When I transfer them to the GPU with cu, it works.

@lorrp1
Copy link

lorrp1 commented Nov 25, 2020

@sdewaele could you please post how did you used cu() to transfer transform mean and scale?

@sdewaele
Copy link
Contributor Author

I actually created a type similar to ZScoreTransform that supports CuArrays. The issue is that the StatsBase.ZScoreTransform does not support CuArrays because the type definition is limited to Vector{T}. A better solution would be to update the StatsBase to directly support it of course.

@sdewaele
Copy link
Contributor Author

sdewaele commented Nov 26, 2020

Using this zscore-transform.jl, the following seems to do the job:

using CUDA
using StatsBase

include("zscore-transform.jl")

# Generic version
Ac = cu(5randn(3,4).+2)
tc = fit(ZScoreTransformGeneric,Ac;dims=2)
Agc = StatsBase.transform(tc,Ac)

# Compare to original ZScoreTransform result
using Test
A = collect(Ac)
t = fit(ZScoreTransform,A;dims=2)
Ag = StatsBase.transform(t,A)

@test collect(Agc)Ag

I may submit a PR to StatsBase for this. The changes with respect to the current ZScoreTransform version are not that many. There is a quite some code duplication in the gist just to make ZScoreTransformGeneric work.

Note that there is also Flux.normalize. It works for CuArrays. However, Flux.normalize cannot be used if you want to apply the normalization parameters from a training dataset on a test dataset, which is typical for machine learning.

@sdewaele
Copy link
Contributor Author

When completed, this PR will resolve this issue: JuliaStats/StatsBase.jl#622

@sdewaele
Copy link
Contributor Author

@lorrp1 The PR was merged into the master of StatsBase.

@lorrp1
Copy link

lorrp1 commented Dec 23, 2020

@lorrp1 The PR was merged into the master of StatsBase.

Thanks I’m going to check it

@sdewaele

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants