2015-07-28 20 views
6

Lazanyayı lazanya ile kullanmayı öğrenmeye başladım ve mnist örneği ile başladım. Şimdi, kendi örneğimi denemek istiyorum: Her satırın, doğru cevabı temsil eden 0 veya 1 ile başladığı, ardından girişi temsil eden 773 0s ve 1'ler içeren bir train.csv dosyası var. Bu dosyayı load_database() işlevindeki aranan numpy dizilerine nasıl dönüştürebileceğimi anlamadım. Bu mnist veritabanı için özgün işlevinden parçasıdır:Lazanya için csv dosyasından numpy dizisi

... 

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 

ve ben X_train (giriş) ve benim csv dosyalarından y_train (her satır başında) almak gerekir.

Teşekkürler!

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 

biz test set geçen gözardı kod snippet'inde şu şekildedir:

cevap

1

Sen numpy.genfromtxt() veya numpy.loadtxt() kullanabilirsiniz.

Artık veri kümenizi ana modüle veya komut dosyasına veya herhangi bir şeye alabilir, ancak tüm test bölümlerini de buradan kaldırabilirsiniz.

Veya alternatif basitçe test set olarak geçerli setleri geçirebilirsiniz: İkinci durumda

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

biz bölümler hariç test kümesini kullanacak ana modüller umurumda gerekmez ancak skorlar (eğer varsa) validation scores'u iki kez yani test scores olarak alırsınız.

Not: Bilmiyorum, hangi mnist örneği budur, ama muhtemelen verilerinizi yukarıdaki gibi hazırladıktan sonra, eğitmen modülünüzde verilerinize uyacak şekilde daha fazla değişiklik yapmanız gerekir. Örneğin: veri giriş şeklini, çıktı şeklini, yani sınıfların sayısını ör. Durumunuzda eski 773, ikincisi 2.