Ich habe zwei 60 x 80921 Matrizen, eine mit Daten gefüllt, eine mit Bezug.
Ich möchte die Werte als Schlüssel/Wert-Paare in zwei verschiedenen LMDBs speichern, eine für das Training (sagen wir um die 60000 Spaltenmarke) und eine für das Testen. Hier ist meine Idee; funktioniert es?Erstellen von großen LMDBs für Caffe mit numpy Arrays
X_train = X[:,:60000]
Y_train = Y[:,:60000]
X_test = X[:,60000:]
Y_test = Y[:,60000:]
X_train = X_train.astype(int)
X_test = X_test.astype(int)
Y_train = Y_train.astype(int)
Y_test = Y_test.astype(int)
map_size = X_train.nbytes * 10
env = lmdb.open('sensormatrix_train_lmdb', map_size=map_size)
with env.begin(write=True) as txn:
for i in range(60):
for j in range(60000):
datum = caffe.proto.caffe_pb2.Datum()
datum.height = X_train.shape[0]
datum.width = X_train.shape[1]
datum.data = X_train[i,j].tobytes()
datum.label= int(Y[i,j])
str_id= '{:08}'.format(i)
Ich bin mir wirklich nicht sicher über den Code. Und worauf bezieht sich die letzte Zeile format(i)
?
warum Sie nicht verwenden Eingabe hinzufügen können '„HDF5Data“' Schichten? Sie haben 'h5py' Paket um numpy Arrays als hdf5 Dateien zu speichern. Sehen Sie ein Beispiel [hier] (http://stackoverflow.com/a/34261942/1714410) (das Beispiel verwendet Matlab, um die Daten zu schreiben, aber es ist noch einfacher in Python mit 'h5py'). – Shai