@@ -119,15 +119,7 @@ randomConvolution = do
119 mm = konst 0
119 mm = konst 0
120 return $ Convolution wN mm
120 return $ Convolution wN mm
123− , KnownNat kernelRows
124− , KnownNat kernelCols
127− , KnownNat strideRows
128− , KnownNat strideCols
129− , kernelFlattened ~ (kernelRows * kernelColumns * channels)
130− ) => UpdateLayer m (Convolution channels filters kernelRows kernelCols strideRows strideCols) where
122+instance ( Monad m ) => UpdateLayer m (Convolution channels filters kernelRows kernelCols strideRows strideCols) where
131 type Gradient (Convolution channels filters kernelRows kernelCols strideRows strideCols) = (Convolution' channels filters kernelRows kernelCols strideRows strideCols)
123 type Gradient (Convolution channels filters kernelRows kernelCols strideRows strideCols) = (Convolution' channels filters kernelRows kernelCols strideRows strideCols)
132 runUpdate LearningParameters {..} (Convolution oldKernel oldMomentum) (Convolution' kernelGradient) = do
124 runUpdate LearningParameters {..} (Convolution oldKernel oldMomentum) (Convolution' kernelGradient) = do
133 let newMomentum = konst learningMomentum * oldMomentum - konst learningRate * kernelGradient
125 let newMomentum = konst learningMomentum * oldMomentum - konst learningRate * kernelGradient