diff --git a/app/Main b/app/Main index 3e54178..16406b2 100755 Binary files a/app/Main and b/app/Main differ diff --git a/app/Main.hs b/app/Main.hs index 4dd4ba5..457e7ed 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -11,7 +11,7 @@ import Debug.Trace main :: IO () main = - let learning_rate = 0.5 + let learning_rate = 0.01 ih = randomLayer 0 (2, 10) ho = randomLayer 1 (10, 1) network = ih :- O ho @@ -21,7 +21,7 @@ main = labels = [vector [1], vector [0], vector [1], vector [0]] - updated_network = session inputs network labels 0.01 10000 + updated_network = session inputs network labels learning_rate 100 -- updated_network = train (head inputs) network (head labels) 0.5 - results = map (\x -> forward x updated_network) inputs + results = map (`forward` updated_network) inputs in print results diff --git a/app/Main.o b/app/Main.o index 9d81993..67f793f 100644 Binary files a/app/Main.o and b/app/Main.o differ diff --git a/src/Lib.hs b/src/Lib.hs index 3b33989..15b51bd 100644 --- a/src/Lib.hs +++ b/src/Lib.hs @@ -90,7 +90,8 @@ module Lib session :: [Input] -> Network -> [Output] -> Double -> Int -> Network session inputs network labels alpha epochs = - foldl' iter network [0..n * epochs] + let n = length inputs - 1 + in foldl' iter network [0..n * epochs] where iter net i = let n = length inputs - 1 diff --git a/src/Lib.o b/src/Lib.o index 0f1a645..fb4b880 100644 Binary files a/src/Lib.o and b/src/Lib.o differ