2015-07-28 13 views
6

Zacząłem uczyć się, jak używać theano z lazagne i zacząłem od przykładu mniszka. Teraz chciałbym spróbować własnego przykładu: Mam plik train.csv, w którym każdy wiersz zaczyna się od 0 lub 1, który reprezentuje prawidłową odpowiedź, a następnie 773 0s i 1s, które reprezentują dane wejściowe. Nie rozumiem, jak mogę przekształcić ten plik na pożądane tablice numpy w funkcji load_database(). jest to część z pierwotnej funkcji dla mnist bazy danych:tablica numpy z pliku csv dla 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 

i muszę dostać X_train (na wejściu) i y_train (początek każdego wiersza) z moich plików csv.

Dzięki!

Odpowiedz

1

Można użyć numpy.genfromtxt() lub numpy.loadtxt() następująco:

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 

we fragmencie kodu my ignorowane minięciu zestaw test.

Teraz możesz zaimportować swój zestaw danych do głównego modułu lub skryptu lub cokolwiek innego, ale pamiętaj też o usunięciu całej części testowej.

Lub alternatywnie można po prostu przejść poprawne zestawy jak test zestawie

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

W tym ostatnim przypadku nie musimy się martwić o głównych moduls sekcje odnoszą się do wyłączonego test zestawie , ale jako wyniki (jeśli masz), otrzymasz validation scores dwa razy, tj. jako test scores.

Uwaga: nie wiem, co mnist przykładem jest to, że jeden, ale prawdopodobnie po przygotowane dane jak wyżej, trzeba dokonać dalszych modyfikacji w module trener też dostosowane do Twoich danych. Na przykład: wejściowy kształt danych, kształt wyjściowy, tj. Liczba klas, np. w twoim przypadku pierwszy to 773, drugi to 2.