Safe Haskell | None |
---|---|
Language | Haskell2010 |
Manifolds of Convolutional
operators. This is hardly used, but could in
theory power conv nets. One day.
Synopsis
- data Convolutional (rd :: Nat) (r :: Nat) (c :: Nat) :: Type -> Type -> Type
- type KnownConvolutional rd r c z x = (KnownNat rd, KnownNat r, KnownNat c, 1 <= (r * c), Dimension x ~ ((Div (Dimension x) (r * c) * r) * c), Dimension z ~ ((Div (Dimension z) (r * c) * r) * c), Manifold (Convolutional rd r c z x), Manifold x, Manifold z, KnownNat (Div (Dimension x) (r * c)), KnownNat (Div (Dimension z) (r * c)))
Convolutional Manifolds
data Convolutional (rd :: Nat) (r :: Nat) (c :: Nat) :: Type -> Type -> Type Source #
A Manifold
of correlational/convolutional transformations, defined by the
number of kernels, their radius, the depth of the input, and its number of
rows and columns.
Instances
KnownConvolutional rd r c z x => Map a (Convolutional rd r c) z x Source # | |
Defined in Goal.Geometry.Map.Linear.Convolutional | |
KnownConvolutional rd r c z x => Propagate a (Convolutional rd r c) z x Source # | |
Defined in Goal.Geometry.Map.Linear.Convolutional propagate :: [a #* z] -> [a #* x] -> (a # Convolutional rd r c z x) -> (a #* Convolutional rd r c z x, [a # z]) Source # | |
KnownConvolutional rd r c z x => Bilinear (Convolutional rd r c) z x Source # | |
Defined in Goal.Geometry.Map.Linear.Convolutional | |
(1 <= (r * c), Manifold x, Manifold y, KnownNat r, KnownNat c, KnownNat rd, KnownNat (Div (Dimension x) (r * c)), KnownNat (Div (Dimension y) (r * c))) => Manifold (Convolutional rd r c y x) Source # | |
Defined in Goal.Geometry.Map.Linear.Convolutional type Dimension (Convolutional rd r c y x) :: Nat Source # | |
type Dimension (Convolutional rd r c y x) Source # | |
type KnownConvolutional rd r c z x = (KnownNat rd, KnownNat r, KnownNat c, 1 <= (r * c), Dimension x ~ ((Div (Dimension x) (r * c) * r) * c), Dimension z ~ ((Div (Dimension z) (r * c) * r) * c), Manifold (Convolutional rd r c z x), Manifold x, Manifold z, KnownNat (Div (Dimension x) (r * c)), KnownNat (Div (Dimension z) (r * c))) Source #
A convenience type for ensuring that all the type-level Nats of a
Convolutional
Manifold
s are KnownNat
s.