2011-11-15 31 views
8

Tôi đang cố gắng sử dụng PyBrain cho một số đào tạo NN đơn giản. Những gì tôi không biết làm thế nào để làm là tải dữ liệu đào tạo từ một tập tin. Nó không được giải thích trên trang web của họ ở bất cứ đâu. Tôi không quan tâm đến định dạng này vì tôi có thể tạo nó ngay bây giờ, nhưng tôi cần phải thực hiện nó trong một tệp thay vì thêm hàng theo cách thủ công, bởi vì tôi sẽ có hàng trăm hàng.Làm cách nào để tải dữ liệu đào tạo trong PyBrain?

+1

Hàng trăm hàng nghĩa là bạn có một tập rất nhỏ và không nên lo lắng về hiệu suất. Nhưng PyBrain có chấp nhận các mảng NumPy không? –

+0

Tôi không biết, tôi chỉ mới bắt đầu sử dụng nó, nhưng không nơi nào họ nói làm thế nào để sử dụng mảng NumPy với NN của họ:/ –

Trả lời

21

Sau đây là cách tôi đã làm nó:

 
ds = SupervisedDataSet(6,3) 

tf = open('mycsvfile.csv','r') 

for line in tf.readlines(): 
    data = [float(x) for x in line.strip().split(',') if x != ''] 
    indata = tuple(data[:6]) 
    outdata = tuple(data[6:]) 
    ds.addSample(indata,outdata) 

n = buildNetwork(ds.indim,8,8,ds.outdim,recurrent=True) 
t = BackpropTrainer(n,learningrate=0.01,momentum=0.5,verbose=True) 
t.trainOnDataset(ds,1000) 
t.testOnData(verbose=True) 

Trong trường hợp này mạng lưới thần kinh có 6 đầu vào và 3 ngõ ra. Tệp csv có 9 giá trị trên mỗi dòng được phân tách bằng dấu phẩy. 6 giá trị đầu tiên là các giá trị đầu vào và ba giá trị cuối cùng là các đầu ra.

+0

đó là rất tốt, cảm ơn bạn rất nhiều. Bạn có biết làm thế nào tôi có thể truy cập vào các giá trị trọng lượng cho mỗi tế bào thần kinh? –

+1

Bạn có thể truy cập các lớp riêng lẻ như thế này: n ['in'] cho lớp đầu vào và n ['out'] cho đầu ra hoặc n ['hidden0'] cho lớp ẩn đầu tiên. Tôi không biết, nhưng tôi đoán rằng bạn có thể truy cập các nút của lớp theo cách nào đó. dir (n ['in']) sẽ cung cấp cho bạn một gợi ý về những gì bạn có thể làm – c0m4

+0

Tôi không thể tìm thấy cách thực hiện. Tôi sẽ đưa ra một câu hỏi mới. Cảm ơn sự giúp đỡ của bạn. –

1

Bạn chỉ cần sử dụng các mảng gấu trúc theo cách này

import pandas as pd 

ds = SupervisedDataSet(6,3) 

dataset = pd.read_csv('mycsvfile.csv','r', delimiter=',',skiprows=1) 
ds.setfield('input' dataset.values[:,0:6]) 
ds.setfield('target', dataset.values[:,-2:-1]) 

và bạn tốt để đi.

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