【发布时间】:2023-03-30 15:43:01
【问题描述】:
在 Julia 中使用 JLD2 加载数据是否有大小限制?
相同的代码:
using JLD2
using FileIO
exp=load("myfile.jld2");
在数据达到一定大小之前似乎可以正常工作。对于我运行的一些实验,文件为 5GB,我获得以下内容:
加载“/pathtofile/myfile.jld2”时遇到错误。 致命错误:
错误:EOFError:读取文件结尾
堆栈跟踪:
[1] handle_error(::EOFError, ::File{DataFormat{:JLD2}}) 在/path/.julia/packages/FileIO/Y0Lre/src/error_handling.jl:80
[2] handle_exceptions(::Array{Any,1}, ::String) at /path/.julia/packages/FileIO/Y0Lre/src/error_handling.jl:75
[3] #load#27(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::File{ DataFormat{:JLD2}}) 在 /path/.julia/packages/FileIO/Y0Lre/src/loadsave.jl:193
[4] 在 /path/.julia/packages/FileIO/Y0Lre/src/loadsave.jl:172 处加载(::File{DataFormat{:JLD2}})
[5] #load#13(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::String)在 /path/.julia/packages/FileIO/Y0Lre/src/loadsave.jl:118
[6] 在 /path/.julia/packages/FileIO/Y0Lre/src/loadsave.jl:118 处加载(::String)
[7] 无顶级范围:0
我尝试使用完全没有使用经验的 jldopen,但我也收到类似的错误消息。
我能做什么?
顺便说一句,load 和 jldopen("my file.jld2","r") 有什么区别?
我在 Mac OSHighSierra 10.13.6 上使用 Julia 版本 1.0.2。
【问题讨论】:
-
请注意,JLD2 有很好的(有时更稳定的)替代方案。对于短期序列化,请查看标准库 docs.julialang.org/en/v1.0/stdlib/Serialization,对于长期序列化 github.com/MikeInnes/BSON.jl 可能更合适。
-
谢谢!很有用
-
很高兴为您提供帮助。请注意,在 Stackoverflow 上,当您发现其他人的答案有用而不是编写答案时,您单击“向上”箭头。
标签: julia