grenade-0.1.0: Practical Deep Learning in Haskell

Copyright(c) Huw Campbell 2016-2017
LicenseBSD2
Stabilityexperimental
Safe HaskellNone
LanguageHaskell98

Grenade.Layers.Pad

Description

 

Synopsis

Documentation

data Pad :: Nat -> Nat -> Nat -> Nat -> * where Source #

A padding layer for a neural network.

Pads on the X and Y dimension of an image.

Constructors

Pad :: Pad padLeft padTop padRight padBottom 

Instances

Show (Pad padLeft padTop padRight padBottom) Source # 

Methods

showsPrec :: Int -> Pad padLeft padTop padRight padBottom -> ShowS #

show :: Pad padLeft padTop padRight padBottom -> String #

showList :: [Pad padLeft padTop padRight padBottom] -> ShowS #

Serialize (Pad l t r b) Source # 

Methods

put :: Putter (Pad l t r b) #

get :: Get (Pad l t r b) #

UpdateLayer (Pad l t r b) Source # 

Associated Types

type Gradient (Pad l t r b) :: * Source #

Methods

runUpdate :: LearningParameters -> Pad l t r b -> Gradient (Pad l t r b) -> Pad l t r b Source #

createRandom :: MonadRandom m => m (Pad l t r b) Source #

runUpdates :: LearningParameters -> Pad l t r b -> [Gradient (Pad l t r b)] -> Pad l t r b Source #

(KnownNat padLeft, KnownNat padTop, KnownNat padRight, KnownNat padBottom, KnownNat inputRows, KnownNat inputColumns, KnownNat outputRows, KnownNat outputColumns, (~) Nat ((+) ((+) inputRows padTop) padBottom) outputRows, (~) Nat ((+) ((+) inputColumns padLeft) padRight) outputColumns) => Layer (Pad padLeft padTop padRight padBottom) (D2 inputRows inputColumns) (D2 outputRows outputColumns) Source #

A two dimentional image can be padped.

Associated Types

type Tape (Pad padLeft padTop padRight padBottom) (D2 inputRows inputColumns :: Shape) (D2 outputRows outputColumns :: Shape) :: * Source #

Methods

runForwards :: Pad padLeft padTop padRight padBottom -> S (D2 inputRows inputColumns) -> (Tape (Pad padLeft padTop padRight padBottom) (D2 inputRows inputColumns) (D2 outputRows outputColumns), S (D2 outputRows outputColumns)) Source #

runBackwards :: Pad padLeft padTop padRight padBottom -> Tape (Pad padLeft padTop padRight padBottom) (D2 inputRows inputColumns) (D2 outputRows outputColumns) -> S (D2 outputRows outputColumns) -> (Gradient (Pad padLeft padTop padRight padBottom), S (D2 inputRows inputColumns)) Source #

(KnownNat padLeft, KnownNat padTop, KnownNat padRight, KnownNat padBottom, KnownNat inputRows, KnownNat inputColumns, KnownNat outputRows, KnownNat outputColumns, KnownNat channels, KnownNat (* inputRows channels), KnownNat (* outputRows channels), (~) Nat ((+) ((+) inputRows padTop) padBottom) outputRows, (~) Nat ((+) ((+) inputColumns padLeft) padRight) outputColumns) => Layer (Pad padLeft padTop padRight padBottom) (D3 inputRows inputColumns channels) (D3 outputRows outputColumns channels) Source #

A two dimentional image can be padped.

Associated Types

type Tape (Pad padLeft padTop padRight padBottom) (D3 inputRows inputColumns channels :: Shape) (D3 outputRows outputColumns channels :: Shape) :: * Source #

Methods

runForwards :: Pad padLeft padTop padRight padBottom -> S (D3 inputRows inputColumns channels) -> (Tape (Pad padLeft padTop padRight padBottom) (D3 inputRows inputColumns channels) (D3 outputRows outputColumns channels), S (D3 outputRows outputColumns channels)) Source #

runBackwards :: Pad padLeft padTop padRight padBottom -> Tape (Pad padLeft padTop padRight padBottom) (D3 inputRows inputColumns channels) (D3 outputRows outputColumns channels) -> S (D3 outputRows outputColumns channels) -> (Gradient (Pad padLeft padTop padRight padBottom), S (D3 inputRows inputColumns channels)) Source #

type Gradient (Pad l t r b) Source # 
type Gradient (Pad l t r b) = ()
type Tape (Pad padLeft padTop padRight padBottom) (D2 inputRows inputColumns) (D2 outputRows outputColumns) Source # 
type Tape (Pad padLeft padTop padRight padBottom) (D2 inputRows inputColumns) (D2 outputRows outputColumns) = ()
type Tape (Pad padLeft padTop padRight padBottom) (D3 inputRows inputColumns channels) (D3 outputRows outputColumns channels) Source # 
type Tape (Pad padLeft padTop padRight padBottom) (D3 inputRows inputColumns channels) (D3 outputRows outputColumns channels) = ()