2015-07-28 24 views
6

Ho iniziato a imparare come usare theano con lasagne e ho iniziato con l'esempio mnist. Ora, voglio provare il mio esempio: ho un file train.csv, in cui ogni riga inizia con 0 o 1 che rappresenta la risposta corretta, seguita da 773 0 e 1 che rappresentano l'input. Non ho capito come posso trasformare questo file in array numpy ricercati nella funzione load_database(). questa è la parte dalla funzione originaria per il database mnist:array numpy da file csv per lasagne

... 

with gzip.open(filename, 'rb') as f: 
    data = pickle_load(f, encoding='latin-1') 

# The MNIST dataset we have here consists of six numpy arrays: 
# Inputs and targets for the training set, validation set and test set. 
X_train, y_train = data[0] 
X_val, y_val = data[1] 
X_test, y_test = data[2] 

... 

# We just return all the arrays in order, as expected in main(). 
# (It doesn't matter how we do this as long as we can read them again.) 
return X_train, y_train, X_val, y_val, X_test, y_test 

e ho bisogno di ottenere il X_train (l'ingresso) e il y_train (all'inizio di ogni riga) dai miei file CSV.

Grazie!

risposta

1

È possibile utilizzare numpy.genfromtxt() o numpy.loadtxt() come segue:

from sklearn.cross_validation import KFold 

Xy = numpy.genfromtxt('yourfile.csv', delimiter=",") 

# the next section provides the required 
# training-validation set splitting but 
# you can do it manually too, if you want 

skf = KFold(len(Xy)) 

for train_index, valid_index in skf: 
    ind_train, ind_valid = train_index, valid_index 
    break 

Xy_train, Xy_valid = Xy[ind_train], Xy[ind_valid] 

X_train = Xy_train[:, 1:] 
y_train = Xy_train[:, 0] 

X_valid = Xy_valid[:, 1:] 
y_valid = Xy_valid[:, 0] 


... 

# you can simply ignore the test sets in your case 
return X_train, y_train, X_val, y_val #, X_test, y_test 

Nel frammento di codice abbiamo ignorato passando il set test.

Ora è possibile importare il set di dati nel modulo principale o nello script o qualsiasi altra cosa, ma si tenga presente di rimuovere anche tutta la parte di test.

Oppure, in alternativa si può semplicemente passare i gruppi validi come test set:

# you can simply pass the valid sets as `test` set 
return X_train, y_train, X_val, y_val, X_val, y_val 

In quest'ultimo caso non abbiamo a cuore le principali Moduli sezioni fanno riferimento al eccettuato test set , ma come punteggi (se lo sono) si otterrà il validation scores due volte come test scores.

Nota: non so, che esempio mnist è quello, ma probabilmente, dopo aver preparato i dati di cui sopra, è necessario apportare ulteriori modifiche nel vostro modulo allenatore troppo per soddisfare ai propri dati. Ad esempio: input shape of data, output shape cioè il numero di classi, ad es. nel tuo caso il primo è 773, il secondo è 2.