packages feed

caffegraph-0.1.0.0: NN/Backend/Caffe.hs

module NN.Backend.Caffe where

import           Gen.Caffe.NetParameter     as NP

import           Control.Lens
import           Data.Graph.Inductive.Query
import qualified Data.Sequence              as S

import           NN.DSL
import           NN.Passes

caffePasses :: [Pass]
caffePasses = [addConnection, addLabels] ++ optimizeInPlaceLayer ReLU ++ optimizeInPlaceLayer Dropout

middleEnd :: Net -> Net
middleEnd = optimizeWith caffePasses

backend :: Net -> NetParameter
backend gr = def & _layer <>~ S.fromList (topsort' gr)