draw chart using simple options
This commit is contained in:
parent
0d43814448
commit
6def5f6197
@ -47,20 +47,14 @@ module Main where
|
||||
, network = rnetwork
|
||||
, training = zip trinputs trlabels
|
||||
, test = zip teinputs telabels
|
||||
, drawChart = True
|
||||
, chartName = "notmnist.png"
|
||||
} :: Session
|
||||
|
||||
let initialCost = crossEntropy session
|
||||
|
||||
newsession <- run (sgd . learningRateDecay (1.1, 5e-2)) session
|
||||
|
||||
let el = map (\(e, l, _) -> (e, l)) (chart newsession)
|
||||
ea = map (\(e, _, a) -> (e, a)) (chart newsession)
|
||||
toFile Chart.def "notmnist.png" $ do
|
||||
Chart.layoutlr_title Chart..= "loss over time"
|
||||
Chart.plotLeft (Chart.line "loss" [el])
|
||||
Chart.plotRight (Chart.line "learningRate" [ea])
|
||||
|
||||
|
||||
let cost = crossEntropy newsession
|
||||
|
||||
putStrLn "parameters: "
|
||||
|
BIN
notmnist.png
BIN
notmnist.png
Binary file not shown.
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 31 KiB |
16
src/Sibe.hs
16
src/Sibe.hs
@ -85,6 +85,8 @@ module Sibe
|
||||
, epoch :: Int
|
||||
, batchSize :: Int
|
||||
, chart :: [(Int, Double, Double)]
|
||||
, drawChart :: Bool
|
||||
, chartName :: String
|
||||
, momentum :: Double
|
||||
, debug :: Bool
|
||||
} deriving (Show)
|
||||
@ -99,6 +101,8 @@ module Sibe
|
||||
, epoch = 0
|
||||
, batchSize = 0
|
||||
, chart = []
|
||||
, drawChart = False
|
||||
, chartName = "chart.png"
|
||||
, momentum = 0
|
||||
, debug = False
|
||||
}
|
||||
@ -253,6 +257,15 @@ module Sibe
|
||||
|
||||
let newnet = foldl' (\n (input, label) -> train input n label alpha) net pairs
|
||||
|
||||
let el = map (\(e, l, _) -> (e, l)) (chart session)
|
||||
ea = map (\(e, _, a) -> (e, a)) (chart session)
|
||||
|
||||
when (drawChart session) $ do
|
||||
toFile Chart.def (chartName session) $ do
|
||||
Chart.layoutlr_title Chart..= "loss over time"
|
||||
Chart.plotLeft (Chart.line "loss" [el])
|
||||
Chart.plotRight (Chart.line "learningRate" [ea])
|
||||
|
||||
return session { network = newnet
|
||||
, epoch = epoch session + 1
|
||||
}
|
||||
@ -285,7 +298,8 @@ module Sibe
|
||||
let el = map (\(e, l, _) -> (e, l)) (chart session)
|
||||
ea = map (\(e, _, a) -> (e, a)) (chart session)
|
||||
|
||||
toFile Chart.def "sgd.png" $ do
|
||||
when (drawChart session) $ do
|
||||
toFile Chart.def (chartName session) $ do
|
||||
Chart.layoutlr_title Chart..= "loss over time"
|
||||
Chart.plotLeft (Chart.line "loss" [el])
|
||||
Chart.plotRight (Chart.line "learningRate" [ea])
|
||||
|
Loading…
Reference in New Issue
Block a user