Ich habe eine riesige Datenmenge, die ich in k Mini-Datensätze unterteilt, wobei k = 100. Wissen, ich möchte diese Mini-Datensätze in verschiedenen Dateien speichern. meine massive Datenmenge l speichern verwendet, um die folgenden Anweisungen:JULIA: Wie kann ich Dateien in einer Schleife schreiben und speichern?
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)
wissen l meine Daten-Sets in k Unter-Datensatz aufgeteilt, wobei 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
aber diese Funktion den verschiedenen Sub-Datensatz gespeichert werden kann in eine Datei, die bei jeder Iteration überschrieben wird.
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")
Alternativ versucht l dieses Verfahren Funktion get_mini_batch aus (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
aber ich nicht die Vorstellung davon, wie eine Variable machen i = 1 .... 100 innerhalb dieses Zeile Code-Datei [i] = jldopen ("/ Pfad zu meiner Datei/mydata (i) .jld", "w")
aber wie kann kann ich eine Datei öffnen, schreiben innen und speichern sie mit @sprintf()? like: file = jldopen ("Pfad zu meiner Datei/mydata.jld", "w") # Die Erweiterung der Datei ist jld, also sollten Sie die Pakete JLD und HDF5, Pkg.add ("JLD"), Pkg.add ("HDF5"), schreiben (Datei, "X", X) # alternativ "@write file A" sagen – vincet
Sie können '@ spritnf' verwenden, um den Dateinamen anzugeben. Zum Beispiel in Ihrer Frage, ersetzen zweiten Code Block: 'file = jldopen ("/Pfad zu meiner Datei/mydata.jld "," w ")' mit 'file = jldopen (@sprintf ("/Pfad zu Datei/mydata% d.jld, i), "w") 'wo' i' die Nummer des Minibuches ist, über das du dich wiederholst – niczky12
danke es ist klarer. Ich bin dankbar – vincet