【发布时间】:2016-10-27 00:59:44
【问题描述】:
我有一个庞大的数据集,它被分成 k 个迷你数据集,其中 k=100。知道我想将这些迷你数据集存储在不同的文件中。 为了存储我的海量数据集,我使用了以下说明:
using JLD, HDF5
X=rand(100000)
file = jldopen("path to my file/mydata.jld", "w") # the extension of file is jld so you should add packages JLD and HDF5, Pkg.add("JLD"), Pkg.add("HDF5"),
write(file, "X", X) # alternatively, say "@write file A"
close(file)
知道 l 将我的数据集划分为 k 个子数据集,其中 k=100
function get_mini_batch(X)
mini_batches = round(Int, ceil(X / 100))
for i=1:mini_batches
mini_batch = X[((i-1)*100 + 1):min(i*100, end)]
file= jldopen("/path to my file/mydata.jld", "w")
write(file, "mini_batch", mini_batch) # alternatively, say "@write file mini_batch"
lose(file)
end
end
但此功能允许将不同的子数据集存储在一个文件中,该文件在每次迭代时都会被覆盖。
file= jldopen("/path to my file/mydata1.jld", "w") # at each iteration l want to get files : mydata1, mydata2 ... mydata100
file= jldopen("/path to my file/mydata2.jld", "w")
file= jldopen("/path to my file/mydata3.jld", "w")
file= jldopen("/path to my file/mydata4.jld", "w")
.
.
.
file= jldopen("/path to my file/mydata100.jld", "w")
或者我尝试了这个程序 函数get_mini_batch(X)
mini_batches = round(Int, ceil(X / 100))
for i=1:mini_batches
mini_batch[i] = X[((i-1)*100 + 1):min(i*100, end)]
file[i]= jldopen("/path to my file/mydata.jld", "w")
write(file, "mini_batch", mini_batch) # alternatively, say "@write file mini_batch"
lose(file)
end
end
但我不知道如何在这一行代码中创建变量 i=1....100 file[i]= jldopen("/path to my file/mydata(i) .jld", "w")
【问题讨论】: