5

Tôi đã sử dụng một khung công tác .NET để đào tạo mạng nơron và tập dữ liệu của tôi thực sự lớn, với số lượng đầu vào lớn.Có cách nào để đào tạo một mạng lưới thần kinh Encog mà không tải tất cả tập huấn luyện trong bộ nhớ?

Tôi đã quyết định chuyển sang Encog do một số vấn đề với khung cũ tôi đang sử dụng và cũng vì Encog có vẻ phong phú hơn nhiều và cung cấp các tính năng bổ sung.

Vấn đề của tôi là Encog tải tất cả dữ liệu huấn luyện cùng một lúc, thành một mảng 2D và điều này không phù hợp với tôi vì tôi có tập dữ liệu rất lớn. Tôi đã thử làm việc xung quanh điều này, và cũng đã kiểm tra các câu hỏi khác (chẳng hạn như this one nhưng không thể tìm thấy một câu trả lời tốt).

Tôi đã thử làm việc với SQLNeuralDataSet và các triển khai khác hỗ trợ hoạt động truyền trực tuyến nhưng tất cả dường như cuối cùng tải dữ liệu vào bộ nhớ (sử dụng MemoryDataLoader) và điều này không giải quyết được sự cố của tôi.

Có cách nào tôi có thể tải (và đào tạo) mạng của tôi một mục tại một thời điểm không? Hoặc là tùy chọn này không có sẵn trong Encog?

Cảm ơn

EDIT

tôi đã kết thúc việc sao chép mã nguồn và sửa đổi nó theo nhu cầu của tôi. Về cơ bản, tất cả đi xuống đến Process(IMLDataPair pair) trong GradientWorker đó, theo các tài liệu:

Process một yếu tố tập huấn luyện.

Trả lời

1

Nhìn vào source code cho nguồn dữ liệu cho Encog, có một số tùy chọn. Hãy xem Buffer/BufferedMLDataSet.cs, ví dụ:

/// This class is not memory based, so very long files can be used, without 
/// running out of memory. This dataset uses a Encog binary training file as a 
/// buffer. 
+0

Tôi đã thử 'BufferedMLDataSet.cs' nhưng nó không thực sự giải quyết được vấn đề của tôi. Về cơ bản, tôi phải lặp qua tập dữ liệu của mình để xây dựng tệp CSV với các đầu vào và đầu ra, sau đó chuyển đổi tệp CSV (lớn) thành nhị phân bằng cách sử dụng 'EncogUtility.ConvertCSV2Binary' rồi tải nó vào một trainingSet như sau:' var trainingSet = new BufferedMLDataSet (binaryFile) 'và vượt qua trainingSet đến đối tượng BackPropagation. Sẽ tốt hơn nếu tôi có thể tải từng bài một. – kristoffz

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