write(file, chn) fails due to missing method
Closed this issue · 1 comments
PeterARBork commented
Dear MCMCChains.jl community,
Thanks for developing this package, which I've used a lot. It's been a while though, and I just updated to version 6.0.3 of MCMCChains and version 1.9.1 of Julia.
Making a simple chain and trying to save it now fails.
Do you think there's something wrong on my end here?
Thanks a lot!
using MCMCChains
chn = Chains(
rand(100, 5, 5),
["one", "two", "three", "four", "five"],
Dict(:internals => ["four", "five"])
)
write("chain-file.jls", chn)
The stacktrace is the following.
ERROR: MethodError: no method matching write(::IOStream, ::Chains{Float64, AxisArrays.AxisArray{Float64, 3, Array{Float64, 3}, Tuple{AxisArrays.Axis{:iter, StepRange{Int64, Int64}}, AxisArrays.Axis{:var, Vector{Symbol}}, AxisArrays.Axis{:chain, UnitRange{Int64}}}}, Missing, NamedTuple{(:parameters, :internals), Tuple{Vector{Symbol}, Vector{Symbol}}}, NamedTuple{(), Tuple{}}})
Closest candidates are:
write(::IO, ::Any)
@ Base io.jl:674
write(::IO, ::Any, ::Any...)
@ Base io.jl:675
write(::IO, ::Union{Float16, Float32, Float64, Int128, Int16, Int32, Int64, UInt128, UInt16, UInt32, UInt64})
@ Base io.jl:688
...
Stacktrace:
[1] write(io::IOStream, x::Chains{Float64, AxisArrays.AxisArray{Float64, 3, Array{Float64, 3}, Tuple{AxisArrays.Axis{:iter, StepRange{Int64, Int64}}, AxisArrays.Axis{:var, Vector{Symbol}}, AxisArrays.Axis{:chain, UnitRange{Int64}}}}, Missing, NamedTuple{(:parameters, :internals), Tuple{Vector{Symbol}, Vector{Symbol}}}, NamedTuple{(), Tuple{}}})
@ Base ./io.jl:674
[2] (::Base.var"#414#415"{Chains{Float64, AxisArrays.AxisArray{Float64, 3, Array{Float64, 3}, Tuple{AxisArrays.Axis{:iter, StepRange{Int64, Int64}}, AxisArrays.Axis{:var, Vector{Symbol}}, AxisArrays.Axis{:chain, UnitRange{Int64}}}}, Missing, NamedTuple{(:parameters, :internals), Tuple{Vector{Symbol}, Vector{Symbol}}}, NamedTuple{(), Tuple{}}}, Tuple{}})(io::IOStream)
@ Base ./io.jl:459
[3] open(::Base.var"#414#415"{Chains{Float64, AxisArrays.AxisArray{Float64, 3, Array{Float64, 3}, Tuple{AxisArrays.Axis{:iter, StepRange{Int64, Int64}}, AxisArrays.Axis{:var, Vector{Symbol}}, AxisArrays.Axis{:chain, UnitRange{Int64}}}}, Missing, NamedTuple{(:parameters, :internals), Tuple{Vector{Symbol}, Vector{Symbol}}}, NamedTuple{(), Tuple{}}}, Tuple{}}, ::String, ::Vararg{String}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ Base ./io.jl:395
[4] open(::Function, ::String, ::String)
@ Base ./io.jl:392
[5] write(::String, ::Chains{Float64, AxisArrays.AxisArray{Float64, 3, Array{Float64, 3}, Tuple{AxisArrays.Axis{:iter, StepRange{Int64, Int64}}, AxisArrays.Axis{:var, Vector{Symbol}}, AxisArrays.Axis{:chain, UnitRange{Int64}}}}, Missing, NamedTuple{(:parameters, :internals), Tuple{Vector{Symbol}, Vector{Symbol}}}, NamedTuple{(), Tuple{}}})
@ Base ./io.jl:459
[6] top-level scope
PeterARBork commented
My bad, this problem was already solved by issue #1994 and even in the documentation.