2015-07-28 16 views
6

Tôi bắt đầu học cách sử dụng theano với lasagne, và bắt đầu với ví dụ mnist. Bây giờ, tôi muốn thử ví dụ của riêng mình: Tôi có một tệp train.csv, trong đó mỗi hàng bắt đầu bằng 0 hoặc 1 đại diện cho câu trả lời đúng, tiếp theo là 773 0 và 1s đại diện cho đầu vào. Tôi không hiểu làm thế nào tôi có thể biến tệp này thành các mảng numpy mong muốn trong hàm load_database(). đây là một phần từ các chức năng ban đầu cho cơ sở dữ liệu mnist:mảng numpy từ tập tin csv cho 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 

và tôi cần phải nhận được X_train (đầu vào) và y_train (đầu mỗi hàng) từ các tập tin csv của tôi.

Cảm ơn!

Trả lời

1

Bạn có thể sử dụng numpy.genfromtxt() hoặc numpy.loadtxt() như sau:

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 

Trong đoạn mã chúng ta phớt lờ đi qua các bộ test.

Bây giờ, bạn có thể nhập tập dữ liệu của mình vào modul hoặc tập lệnh chính hoặc bất kỳ thứ gì, nhưng cũng cần lưu ý để xóa tất cả phần thử nghiệm khỏi quá trình đó.

Hoặc cách khác bạn có thể dễ dàng vượt qua các bộ giá trị như test thiết lập:

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

Trong trường hợp sau, chúng tôi không cần phải quan tâm đến moduls chính phần tham khảo trừ test bộ , nhưng như điểm số (nếu có), bạn sẽ nhận được validation scores hai lần tức là test scores.

Lưu ý: Tôi không biết, ví dụ này là một, nhưng có thể, sau khi bạn chuẩn bị dữ liệu như trên, bạn phải thực hiện các sửa đổi khác trong mô-đun huấn luyện của mình để phù hợp với dữ liệu của bạn. Ví dụ: hình dạng đầu vào của dữ liệu, hình dạng đầu ra tức là số lượng các lớp, ví dụ: trong trường hợp của bạn, trước đây là 773, cái sau là 2.

Các vấn đề liên quan