ERROR: LoadError: MethodError: no method matching ∇conv_data!(::CuArray{Float32,4}, ::CuArray{Float32,4}, ::CuArray{Float32,4}, ::CuArray{Float32,4}; pad=(0, 0), stride=(1, 1), dilation=(1, 1), flipkernel=0)
Closest candidates are:
∇conv_data!(::CuArray{T<:Union{Float16, Float32, Float64},N} where N, ::CuArray{T<:Union{Float16, Float32, Float64},N} where N, ::CuArray{T<:Union{Float16, Float32, Float64},N} where N, ::CuArray{T<:Union{Float16, Float32, Float64},N} where N; pad, stride, mode, alpha, dilation, workspace, algo) where T<:Union{Float16, Float32, Float64} at /home/jamesnorton/.julia/packages/CuArrays/f4Eke/src/dnn/nnlib.jl:115 got unsupported keyword argument "flipkernel"
∇conv_data!(::AbstractArray{T,4}, ::AbstractArray{T,4}, ::AbstractArray{T,4}, ::AbstractArray{T,4}; pad, stride, dilation, flipkernel) where T at /home/jamesnorton/.julia/packages/NNlib/x0XUf/src/conv.jl:84
The strange thing is that the second candidate looks like a match to me.
[1] kwerr(::NamedTuple{(:pad, :stride, :dilation, :flipkernel),Tuple{Tuple{Int64,Int64},Tuple{Int64,Int64},Tuple{Int64,Int64},Int64}}, ::Function, ::CuArray{Float32,4}, ::CuArray{Float32,4}, ::CuArray{Float32,4}, ::CuArray{Float32,4}) at ./error.jl:97
[2] (::getfield(NNlib, Symbol("#kw##∇conv_data!")))(::NamedTuple{(:pad, :stride, :dilation, :flipkernel),Tuple{Tuple{Int64,Int64},Tuple{Int64,Int64},Tuple{Int64,Int64},Int64}}, ::typeof(NNlib.∇conv_data!), ::CuArray{Float32,4}, ::CuArray{Float32,4}, ::CuArray{Float32,4}, ::CuArray{Float32,4}) at ./none:0
[3] #∇conv_data#54(::Tuple{Int64,Int64}, ::Tuple{Int64,Int64}, ::Tuple{Int64,Int64}, ::Int64, ::Function, ::CuArray{Float32,4}, ::CuArray{Float32,4}, ::CuArray{Float32,4}) at /home/jamesnorton/.julia/packages/NNlib/x0XUf/src/conv.jl:39
[4] (::getfield(NNlib, Symbol("#kw##∇conv_data")))(::NamedTuple{(:stride, :pad, :dilation),Tuple{Tuple{Int64,Int64},Tuple{Int64,Int64},Tuple{Int64,Int64}}}, ::typeof(NNlib.∇conv_data), ::CuArray{Float32,4}, ::CuArray{Float32,4}, ::CuArray{Float32,4}) at ./none:0
[5] (::getfield(Flux.Tracker, Symbol("##434#435")){Base.Iterators.Pairs{Symbol,Tuple{Int64,Int64},Tuple{Symbol,Symbol,Symbol},NamedTuple{(:stride, :pad, :dilation),Tuple{Tuple{Int64,Int64},Tuple{Int64,Int64},Tuple{Int64,Int64}}}},TrackedArray{…,CuArray{Float32,4}},TrackedArray{…,CuArray{Float32,4}}})(::CuArray{Float32,4}) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/array.jl:349
[6] back_(::Flux.Tracker.Call{getfield(Flux.Tracker, Symbol("##434#435")){Base.Iterators.Pairs{Symbol,Tuple{Int64,Int64},Tuple{Symbol,Symbol,Symbol},NamedTuple{(:stride, :pad, :dilation),Tuple{Tuple{Int64,Int64},Tuple{Int64,Int64},Tuple{Int64,Int64}}}},TrackedArray{…,CuArray{Float32,4}},TrackedArray{…,CuArray{Float32,4}}},Tuple{Flux.Tracker.Tracked{CuArray{Float32,4}},Flux.Tracker.Tracked{CuArray{Float32,4}}}}, ::CuArray{Float32,4}) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:23
[7] back(::Flux.Tracker.Tracked{CuArray{Float32,4}}, ::CuArray{Float32,4}) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:45
[8] foreach at ./abstractarray.jl:1836 [inlined]
[9] back_(::Flux.Tracker.Call{getfield(Flux.Tracker, Symbol("#back#451")){2,getfield(Base.Broadcast, Symbol("##26#28")){getfield(Base.Broadcast, Symbol("##27#29")){typeof(+),getfield(Base.Broadcast, Symbol("##9#10")){getfield(Base.Broadcast, Symbol("##9#10")){getfield(Base.Broadcast, Symbol("##11#12"))}},getfield(Base.Broadcast, Symbol("##13#14")){getfield(Base.Broadcast, Symbol("##13#14")){getfield(Base.Broadcast, Symbol("##15#16"))}},getfield(Base.Broadcast, Symbol("##5#6")){getfield(Base.Broadcast, Symbol("##5#6")){getfield(Base.Broadcast, Symbol("##3#4"))}}},typeof(relu)},Tuple{TrackedArray{…,CuArray{Float32,4}},TrackedArray{…,CuArray{Float32,4}}}},Tuple{Flux.Tracker.Tracked{CuArray{Float32,4}},Flux.Tracker.Tracked{CuArray{Float32,4}}}}, ::CuArray{Float32,4}) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:26
[10] back(::Flux.Tracker.Tracked{CuArray{Float32,4}}, ::CuArray{Float32,4}) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:45
[11] back_(::Flux.Tracker.Call{getfield(Flux.Tracker, Symbol("##438#439")){Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},TrackedArray{…,CuArray{Float32,4}},Tuple{Int64,Int64},CuArray{Float32,4}},Tuple{Flux.Tracker.Tracked{CuArray{Float32,4}},Nothing}}, ::CuArray{Float32,4}) at ./abstractarray.jl:1836
[12] back(::Flux.Tracker.Tracked{CuArray{Float32,4}}, ::CuArray{Float32,4}) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:45
[13] back_(::Flux.Tracker.Call{getfield(Flux.Tracker, Symbol("##385#386")){TrackedArray{…,CuArray{Float32,4}}},Tuple{Flux.Tracker.Tracked{CuArray{Float32,4}},Nothing}}, ::CuArray{Float32,2}) at ./abstractarray.jl:1836
[14] back(::Flux.Tracker.Tracked{CuArray{Float32,2}}, ::CuArray{Float32,2}) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:45
[15] back_(::Flux.Tracker.Call{getfield(Flux.Tracker, Symbol("##424#425")){TrackedArray{…,CuArray{Float32,2}},TrackedArray{…,CuArray{Float32,2}}},Tuple{Flux.Tracker.Tracked{CuArray{Float32,2}},Flux.Tracker.Tracked{CuArray{Float32,2}}}}, ::CuArray{Float32,2}) at ./abstractarray.jl:1836
[16] back(::Flux.Tracker.Tracked{CuArray{Float32,2}}, ::CuArray{Float32,2}) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:45
[17] foreach(::Function, ::Tuple{Flux.Tracker.Tracked{CuArray{Float32,2}},Flux.Tracker.Tracked{CuArray{Float32,1}}}, ::Tuple{CuArray{Float32,2},CuArray{Float32,1}}) at ./abstractarray.jl:1836
[18] back_(::Flux.Tracker.Call{getfield(Flux.Tracker, Symbol("#back#451")){2,getfield(Base.Broadcast, Symbol("##26#28")){getfield(Base.Broadcast, Symbol("##27#29")){typeof(+),getfield(Base.Broadcast, Symbol("##9#10")){getfield(Base.Broadcast, Symbol("##9#10")){getfield(Base.Broadcast, Symbol("##11#12"))}},getfield(Base.Broadcast, Symbol("##13#14")){getfield(Base.Broadcast, Symbol("##13#14")){getfield(Base.Broadcast, Symbol("##15#16"))}},getfield(Base.Broadcast, Symbol("##5#6")){getfield(Base.Broadcast, Symbol("##5#6")){getfield(Base.Broadcast, Symbol("##3#4"))}}},typeof(identity)},Tuple{TrackedArray{…,CuArray{Float32,2}},TrackedArray{…,CuArray{Float32,1}}}},Tuple{Flux.Tracker.Tracked{CuArray{Float32,2}},Flux.Tracker.Tracked{CuArray{Float32,1}}}}, ::CuArray{Float32,2}) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:26
[19] back(::Flux.Tracker.Tracked{CuArray{Float32,2}}, ::CuArray{Float32,2}) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:45
[20] foreach at ./abstractarray.jl:1836 [inlined]
[21] back_(::Flux.Tracker.Call{getfield(Flux.Tracker, Symbol("##426#427")){TrackedArray{…,CuArray{Float32,2}}},Tuple{Flux.Tracker.Tracked{CuArray{Float32,2}}}}, ::CuArray{Float32,2}) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:26
[22] back(::Flux.Tracker.Tracked{CuArray{Float32,2}}, ::CuArray{Float32,2}) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:45
[23] foreach(::Function, ::Tuple{Nothing,Flux.Tracker.Tracked{CuArray{Float32,2}},Nothing}, ::Tuple{CuArray{Float32,2},CuArray{Float32,2},Float32}) at ./abstractarray.jl:1836
[24] back_(::Flux.Tracker.Call{getfield(Flux.Tracker, Symbol("#back#451")){3,getfield(Base.Broadcast, Symbol("##26#28")){getfield(Base.Broadcast, Symbol("##27#29")){typeof(*),getfield(Base.Broadcast, Symbol("##9#10")){getfield(Base.Broadcast, Symbol("##9#10")){getfield(Base.Broadcast, Symbol("##11#12"))}},getfield(Base.Broadcast, Symbol("##13#14")){getfield(Base.Broadcast, Symbol("##13#14")){getfield(Base.Broadcast, Symbol("##15#16"))}},getfield(Base.Broadcast, Symbol("##5#6")){getfield(Base.Broadcast, Symbol("##27#29")){typeof(CUDAnative.log),getfield(Base.Broadcast, Symbol("##9#10")){getfield(Base.Broadcast, Symbol("##11#12"))},getfield(Base.Broadcast, Symbol("##13#14")){getfield(Base.Broadcast, Symbol("##15#16"))},getfield(Base.Broadcast, Symbol("##5#6")){getfield(Base.Broadcast, Symbol("##5#6")){getfield(Base.Broadcast, Symbol("##3#4"))}}}}},typeof(*)},Tuple{Flux.OneHotMatrix{CuArray{Flux.OneHotVector,1}},TrackedArray{…,CuArray{Float32,2}},Int64}},Tuple{Nothing,Flux.Tracker.Tracked{CuArray{Float32,2}},Nothing}}, ::CuArray{Float32,2}) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:26
[25] back(::Flux.Tracker.Tracked{CuArray{Float32,2}}, ::CuArray{Float32,2}) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:45
[26] foreach at ./abstractarray.jl:1836 [inlined]
[27] back_(::Flux.Tracker.Call{getfield(Flux.Tracker, Symbol("##397#398")){TrackedArray{…,CuArray{Float32,2}}},Tuple{Flux.Tracker.Tracked{CuArray{Float32,2}}}}, ::Float32) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:26
[28] back(::Flux.Tracker.Tracked{Float32}, ::Float32) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:43
[29] foreach at ./abstractarray.jl:1836 [inlined]
[30] back_(::Flux.Tracker.Call{getfield(Flux.Tracker, Symbol("##178#179")),Tuple{Flux.Tracker.Tracked{Float32}}}, ::Float32) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:26
[31] back(::Flux.Tracker.Tracked{Float32}, ::Float64) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:43
[32] foreach at ./abstractarray.jl:1836 [inlined]
[33] back_(::Flux.Tracker.Call{getfield(Flux.Tracker, Symbol("##203#206")){Int64},Tuple{Flux.Tracker.Tracked{Float32},Nothing}}, ::Float32) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:26
[34] back(::Flux.Tracker.Tracked{Float32}, ::Int64) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:43
[35] back!(::Flux.Tracker.TrackedReal{Float32}) at /home/jamesnorton/.julia/packages/Flux/oN61x/src/tracker/back.jl:62
[36] #train!#121(::getfield(Flux, Symbol("#throttled#18")){getfield(Flux, Symbol("##throttled#10#14")){Bool,Bool,getfield(Main, Symbol("##11#12")),Int64}}, ::Function, ::Function, ::Array{Tuple{CuArray{Float32,4},Flux.OneHotMatrix{CuArray{Flux.OneHotVector,1}}},1}, ::getfield(Flux.Optimise, Symbol("##43#47"))) at /home/jamesnorton/.julia/packages/Juno/46C8i/src/progress.jl:111
[37] (::getfield(Flux.Optimise, Symbol("#kw##train!")))(::NamedTuple{(:cb,),Tuple{getfield(Flux, Symbol("#throttled#18")){getfield(Flux, Symbol("##throttled#10#14")){Bool,Bool,getfield(Main, Symbol("##11#12")),Int64}}}}, ::typeof(Flux.Optimise.train!), ::Function, ::Array{Tuple{CuArray{Float32,4},Flux.OneHotMatrix{CuArray{Flux.OneHotVector,1}}},1}, ::Function) at ./none:0
[38] top-level scope at none:0
[39] include at ./boot.jl:317 [inlined]
[40] include_relative(::Module, ::String) at ./loading.jl:1044
[41] include(::Module, ::String) at ./sysimg.jl:29
[42] exec_options(::Base.JLOptions) at ./client.jl:231
[43] _start() at ./client.jl:425
in expression starting at /home/jamesnorton/cats_n_dogs/mnist.jl:39