gpt4 book ai didi

julia - 使用 BSON : @load in Julia 的意外行为

转载 作者:行者123 更新时间:2023-12-04 15:16:45 25 4
gpt4 key购买 nike

所以,我正在使用 Flux 训练一个神经网络模型Julia 中的包。在训练期间,每次迭代都会对模型进行改进,后者保存在我的计算机中。
为此,我使用以下行:

if acc_te[epoch_i] >= best_acc
@info(" -> New best accuracy! Saving model out to mymodel.bson")
@save "mymodel.bson" m
best_acc = acc_te[epoch_i];
last_improvement = epoch_i;
end
我认为这是非常标准的(我从模型动物园中提取的)。
在训练结束时,可以假设保存的模型“mymodel.bson”是我得到的最好的模型。到现在为止还挺好!。
现在,问题:
第二天早上,我打开一个终端,这就是发生的事情(每次都是一样的):
julia>using Flux;
julia>using BSON: @save
julia>using BSON: @load
julia> @load "mymodel.bson" model
ERROR: KeyError: key :model not found
Stacktrace:
[1] getindex(::Dict{Symbol,Any}, ::Symbol) at ./dict.jl:477
[2] top-level scope at /home/gbrunini/.julia/packages/BSON/XAts7/src/BSON.jl:53
julia>
julia> #maybe try another name
julia> @load "mymodel.bson" someothername
ERROR: KeyError: key :someothername not found
Stacktrace:
[1] getindex(::Dict{Symbol,Any}, ::Symbol) at ./dict.jl:477
[2] top-level scope at /home/gbrunini/.julia/packages/BSON/XAts7/src/BSON.jl:53
julia> #maybe try another name
.....same error...
julia> #maybe try another name
.... same error....
julia> #maybe try another name
.... same error....
julia> #maybe try another name
julia>@load "mymodel.bson" m # eureca! this name works!
为什么会这样?有一些禁忌的名字吗?
有时它适用于其他名称,但我总是必须尝试至少 5-6 个不同的名称,直到找到合适的名称为止!越来越烦人了
我究竟做错了什么?
提前致谢并保持安全!

最佳答案

BSON.@saveBSON.@load存储具有确切给定名称的变量。您不能以不同的名称恢复它。

using BSON
x=5
BSON.@save "mydoc.bson" x
这已存储值 5连同名字 x .
如果您尝试使用错误的名称恢复它,则不会找到它:
julia> BSON.@load "mydoc.bson" y
ERROR: KeyError: key :y not found
而不是 - 您需要使用原始名称恢复 - 查看值如何被覆盖:
julia> x=999
999

julia> BSON.@load "mydoc.bson" x

julia> x
5
那么当您需要更多灵活性时该怎么办?使用 BSON.parse返回 Dict 的函数您可以随心所欲地使用它:
julia> BSON.parse("mydoc.bson")
Dict{Symbol,Any} with 1 entry:
:x => 5

关于julia - 使用 BSON : @load in Julia 的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64179770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com