running session = Session(experiment, dir="sessions/connect-four") causes Error
Snimm opened this issue · comments
Swarnim Maheshwari commented
I have RTX 3060 12 GB, Julia version 1.8.3,
It was working perfectly yesterday, now it is causing issue.
running session = Session(experiment, dir="sessions/connect-four")
causes the following Error:
experiment = Examples.experiments["connect-four"]
Experiment("connect-four", AlphaZero.Examples.ConnectFour.GameSpec(), Params(SelfPlayParams(MctsParams(1.0, 2.0, 600, PLSchedule{Float64}([0, 20, 30], [1.0, 1.0, 0.3]), 0.25, 1.0, 1.0), SimParams(5000, 128, 64, true, true, 2, 0.0, false)), nothing, LearningParams(true, true, LOG_WEIGHT, Adam(0.002f0), 0.0001f0, 1.0f0, 1.0f0, 1024, 1024, 1, 2000, 1), ArenaParams(MctsParams(1.0, 2.0, 600, ConstSchedule{Float64}(0.2), 0.05, 1.0, 1.0), SimParams(128, 128, 128, true, true, 2, 0.5, true), 0.05), 15, true, true, PLSchedule{Int64}([0, 15], [400000, 1000000])), ResNet, ResNetHP(5, 128, (3, 3), 32, 32, 0.1f0), AlphaZero.Benchmark.Duel[AlphaZero.Benchmark.Duel(AlphaZero.Benchmark.Full(MctsParams(1.0, 2.0, 600, ConstSchedule{Float64}(0.2), 0.05, 1.0, 1.0)), AlphaZero.Benchmark.MctsRollouts(MctsParams(1.0, 1.0, 1000, ConstSchedule{Float64}(0.2), 0.05, 1.0, 1.0)), SimParams(256, 256, 256, true, true, 2, 0.5, false)), AlphaZero.Benchmark.Duel(AlphaZero.Benchmark.NetworkOnly(0.5), AlphaZero.Benchmark.MctsRollouts(MctsParams(1.0, 1.0, 1000, ConstSchedule{Float64}(0.2), 0.05, 1.0, 1.0)), SimParams(256, 256, 256, true, true, 2, 0.5, false))])
session = Session(experiment, dir="sessions/connect-four")
Loading environment from: sessions/connect-four
TypeError: in new, expected Tuple{Flux.Conv{2, 2, typeof(identity), Array{Float32, 4}, Vector{Float32}}, Flux.BatchNorm{typeof(NNlib.relu), Vector{Float32}, Float32, Vector{Float32}}, Flux.Conv{2, 2, typeof(identity), Array{Float32, 4}, Vector{Float32}}, Flux.BatchNorm{typeof(identity), Vector{Float32}, Float32, Vector{Float32}}}, got a value of type Tuple{Flux.Conv{2, 2, typeof(identity), Array{Float32, 4}, Vector{Float32}}, Int64, Flux.BatchNorm{typeof(NNlib.relu), Vector{Float32}, Float32, Vector{Float32}}, Flux.Conv{2, 2, typeof(identity), Array{Float32, 4}, Vector{Float32}}}
Stacktrace:
[1] deserialize(s::Serialization.Serializer{IOStream}, t::DataType)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:1485
[2] handle_deserialize(s::Serialization.Serializer{IOStream}, b::Int32)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:877
[3] deserialize(s::Serialization.Serializer{IOStream}, t::DataType)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:1479
[4] handle_deserialize(s::Serialization.Serializer{IOStream}, b::Int32)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:877
[5] deserialize(s::Serialization.Serializer{IOStream})
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:813
[6] (::Serialization.var"#5#6"{Serialization.Serializer{IOStream}})(i::Int64)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:972
[7] ntupleany(f::Serialization.var"#5#6"{Serialization.Serializer{IOStream}}, n::Int64)
@ Base .\ntuple.jl:43
[8] deserialize_tuple(s::Serialization.Serializer{IOStream}, len::Int64)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:972
[9] handle_deserialize(s::Serialization.Serializer{IOStream}, b::Int32)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:856
[10] deserialize(s::Serialization.Serializer{IOStream}, t::DataType)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:1479
[11] handle_deserialize(s::Serialization.Serializer{IOStream}, b::Int32)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:877
[12] deserialize(s::Serialization.Serializer{IOStream})
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:813
[13] (::Serialization.var"#5#6"{Serialization.Serializer{IOStream}})(i::Int64)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:972
[14] ntupleany(f::Serialization.var"#5#6"{Serialization.Serializer{IOStream}}, n::Int64)
@ Base .\ntuple.jl:43
[15] deserialize_tuple(s::Serialization.Serializer{IOStream}, len::Int64)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:972
[16] handle_deserialize(s::Serialization.Serializer{IOStream}, b::Int32)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:856
[17] deserialize(s::Serialization.Serializer{IOStream}, t::DataType)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:1479
[18] handle_deserialize(s::Serialization.Serializer{IOStream}, b::Int32)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:877
[19] deserialize(s::Serialization.Serializer{IOStream}, t::DataType)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:1467
[20] handle_deserialize(s::Serialization.Serializer{IOStream}, b::Int32)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:882
[21] deserialize(s::Serialization.Serializer{IOStream})
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:813
[22] handle_deserialize(s::Serialization.Serializer{IOStream}, b::Int32)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:919
[23] deserialize
@ C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:813 [inlined]
[24] deserialize(s::IOStream)
@ Serialization C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:800
[25] open(f::typeof(Serialization.deserialize), args::String; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ Base .\io.jl:384
[26] open
@ .\io.jl:381 [inlined]
[27] deserialize
@ C:\Users\rexze\AppData\Local\Programs\Julia-1.8.3\share\julia\stdlib\v1.8\Serialization\src\Serialization.jl:810 [inlined]
[28] load_env(dir::String)
@ AlphaZero.UserInterface C:\Users\rexze\.julia\packages\AlphaZero\p8fyV\src\ui\session.jl:113
[29] Session(e::Experiment; dir::String, autosave::Bool, nostdout::Bool, save_intermediate::Bool)
@ AlphaZero.UserInterface C:\Users\rexze\.julia\packages\AlphaZero\p8fyV\src\ui\session.jl:284
[30] top-level scope
@ REPL[3]:1
[31] top-level scope
@ C:\Users\rexze\.julia\packages\CUDA\DfvRa\src\initialization.jl:52
Swarnim Maheshwari commented
The error is resolved if I create a new environment from scratch.
Jonathan Laurent commented
The serialization formats are not guaranteed to be stable so even updating Flux to a different minor version could break it.