2015-05-30 20 views
12

Tôi đang xem xét việc thay đổi hnn package để hỗ trợ các chức năng kích hoạt khác nhau cho mỗi nút trong mạng. chức năngchức năng ánh xạ từ danh sách đến dữ liệu

Đặc biệt, this linethis line sử dụng cụ thể (kích hoạt), nhưng tôi đang cố gắng để mở rộng đó để hỗ trợ cái gì đó như:

evalNet [email protected](Network{..}) inputs activations = do 
    s <- foldM (\x -> computeStepM n x (activations!!N)) state inputsV 

nơi N là nút id/index.

Hiện tại tôi là giai đoạn mà tôi có danh sách các chức năng kích hoạt có cùng độ dài với số lượng nút trong mạng.

Tôi cần trợ giúp (vì tôi bị mất trong mã nguồn gói) để tìm cách áp dụng chức năng Nthactivations từ danh sách.

EDIT: Tôi đã thử StateT cách tiếp cận sử dụng tick (từ tài liệu) và sử dụng zip chức năng, cả hai đều cung cấp cho nhiều hành mỗi từng bước, vì vậy kết quả cuối cùng sẽ trở thành sai

Trả lời

3

Đối với bản đồ bạn có thể muốn một cái gì đó giống như

as = [(+1),(*2),(+(-3))] 
xs = [4,5,6] 
main = print $ zipWith ($) as xs 

nếp gấp phức tạp hơn nhưng có thể được thực hiện bằng cách sử dụng cùng một ý tưởng: Zip đầu vào với chức năng kích hoạt và thay đổi chức năng gấp để sử dụng giá trị của bộ dữ liệu đến.

Tuy nhiên, tôi nghi ngờ bạn thực sự cần/muốn thay đổi nếp gấp. Nếu tôi không nhầm lần thì chỉ cần chuyển vào danh sách chức năng kích hoạt. Vì vậy, thực sự không có gì để làm.

+0

Vì vậy, bạn có thể thực hiện: 'zipWith activations $! zipVectorWith (-) (trọng số <> có tiền tố) thresh' thay vì dòng 93? –

+0

Tôi đoán điều này có ý nghĩa. Đã kiểm tra https://gist.githubusercontent.com/rememmber/caf1401e60d7a99d48fa/raw/128b8780280bfd94f74baa1280c629fad0c6fb09/gistfile1.hs –

+0

NHƯNG! 'computeStep' theo ý kiến ​​của tôi không có TẤT CẢ dữ liệu. Do đó kích thước danh sách sẽ khác nhau –

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