hasktorch-indef-0.0.1.0: src/Torch/Indef/Static/NN.hs
-------------------------------------------------------------------------------
-- |
-- Module : Torch.Indef.Static.NN
-- Copyright : (c) Sam Stites 2017
-- License : BSD3
-- Maintainer: sam@stites.io
-- Stability : experimental
-- Portability: non-portable
-------------------------------------------------------------------------------
module Torch.Indef.Static.NN
( module X
, _batchNormalization_updateOutput
, _batchNormalization_backward
, _col2Im_updateOutput
, _col2Im_updateGradInput
, _im2Col_updateOutput
, _im2Col_updateGradInput
) where
import Torch.Indef.Types
import qualified Torch.Indef.Dynamic.NN as Dynamic
import Torch.Indef.Static.Tensor
import Torch.Indef.Static.NN.Activation as X
import Torch.Indef.Static.NN.Conv1d as X hiding (getTensors, weights, bias, featureSize, outputSize, kernelWidth)
import Torch.Indef.Static.NN.Conv2d as X hiding (getTensors, weights, bias, featureSize, outputSize, kernelWidth, kernelHeight)
-- import Torch.Indef.Static.NN.Conv3d as X
import Torch.Indef.Static.NN.Criterion as X
import Torch.Indef.Static.NN.Layers as X hiding (getTensors, weights, bias, outputSize, inputSize)
import Torch.Indef.Static.NN.Math as X
import Torch.Indef.Static.NN.Padding as X
import Torch.Indef.Static.NN.Pooling as X
import Torch.Indef.Static.NN.Sampling as X
import Torch.Indef.Static.NN.Backprop as X
-- | batchNormalization forward pass (updates the output tensor)
_batchNormalization_updateOutput
:: Tensor d -- ^ input
-> Tensor d -- ^ output
-> Tensor d -- ^ weight
-> Tensor d -- ^ bias
-> Tensor d -- ^ running mean
-> Tensor d -- ^ running var
-> Tensor d -- ^ save mean
-> Tensor d -- ^ save std
-> Bool -- ^ train
-> Double -- ^ momentum
-> Double -- ^ eps
-> IO ()
_batchNormalization_updateOutput t0 t1 t2 t3 t4 t5 t6 t7 = Dynamic._batchNormalization_updateOutput
(asDynamic t0) (asDynamic t1) (asDynamic t2) (asDynamic t3) (asDynamic t4)
(asDynamic t5) (asDynamic t6) (asDynamic t7)
-- | batchNormalization backward
_batchNormalization_backward
:: Tensor d -- ^ input
-> Tensor d -- ^ grad output
-> Tensor d -- ^ grad input
-> Tensor d -- ^ grad weight
-> Tensor d -- ^ grad bias
-> Tensor d -- ^ weight
-> Tensor d -- ^ running mean
-> Tensor d -- ^ running var
-> Tensor d -- ^ save mean
-> Tensor d -- ^ save std
-> Bool -- ^ train
-> Double -- ^ momentum
-> Double -- ^ eps
-> IO ()
_batchNormalization_backward t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 = Dynamic._batchNormalization_backward
(asDynamic t0) (asDynamic t1) (asDynamic t2) (asDynamic t3) (asDynamic t4)
(asDynamic t5) (asDynamic t6) (asDynamic t7) (asDynamic t8) (asDynamic t9)
-- | col2Im forward pass (updates the output tensor)
_col2Im_updateOutput
:: Tensor d -- ^ input
-> Tensor d -- ^ output
-> Int -- ^ output Height
-> Int -- ^ output Width
-> Int -- ^ kH
-> Int -- ^ kW
-> Int -- ^ dH
-> Int -- ^ dW
-> Int -- ^ padH
-> Int -- ^ padW
-> Int -- ^ sH
-> Int -- ^ sW
-> IO ()
_col2Im_updateOutput t0 t1 = Dynamic._col2Im_updateOutput (asDynamic t0) (asDynamic t1)
-- | col2Im backward-update (updates the layer and bias tensors)
_col2Im_updateGradInput
:: Tensor d -- ^ grad output
-> Tensor d -- ^ grad input
-> Int -- ^ kH
-> Int -- ^ kW
-> Int -- ^ dH
-> Int -- ^ dW
-> Int -- ^ padH
-> Int -- ^ padW
-> Int -- ^ sH
-> Int -- ^ sW
-> IO ()
_col2Im_updateGradInput g0 g1 = Dynamic._col2Im_updateGradInput (asDynamic g0) (asDynamic g1)
-- | im2Col forward pass (updates the output tensor)
_im2Col_updateOutput :: Tensor d -> Tensor d -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> IO ()
_im2Col_updateOutput g0 g1 = Dynamic._im2Col_updateOutput (asDynamic g0) (asDynamic g1)
-- | im2Col backward-update (updates the layer and bias tensors)
_im2Col_updateGradInput :: Tensor d -> Tensor d -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> IO ()
_im2Col_updateGradInput g0 g1 = Dynamic._im2Col_updateGradInput (asDynamic g0) (asDynamic g1)
{-
class CPUNN t d where
unfolded_acc :: t d -> t d -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> IO ()
unfolded_copy :: t d -> t d -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> IO ()
volumetricConvolutionMM_updateOutput :: t d -> t d -> t d -> t d -> t d -> t d -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> IO ()
volumetricConvolutionMM_updateGradInput :: t d -> t d -> t d -> t d -> t d -> t d -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> IO ()
volumetricConvolutionMM_accGradParameters :: t d -> t d -> t d -> t d -> t d -> t d -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Double -> IO ()
temporalSubSampling_updateOutput :: t d -> t d -> t d -> t d -> Int -> Int -> Int -> IO ()
temporalSubSampling_updateGradInput :: t d -> t d -> t d -> t d -> Int -> Int -> IO ()
temporalSubSampling_accGradParameters :: t d -> t d -> t d -> t d -> Int -> Int -> Double -> IO ()
spatialFullConvolutionMap_updateOutput :: t d -> t d -> t d -> t d -> t d -> Int -> Int -> Int -> Int -> IO ()
spatialFullConvolutionMap_updateGradInput :: t d -> t d -> t d -> t d -> t d -> t d -> Int -> Int -> Int -> Int -> IO ()
spatialFullConvolutionMap_accGradParameters :: t d -> t d -> t d -> t d -> t d -> Int -> Int -> Int -> Int -> Double -> IO ()
hardShrink_updateOutput :: t d -> t d -> Double -> IO ()
hardShrink_updateGradInput :: t d -> t d -> t d -> Double -> IO ()
linear_updateOutput :: t d -> t d -> t d -> t d -> t d -> IO ()
linear_updateGradInput :: t d -> t d -> t d -> t d -> IO ()
linear_accGradParameters :: t d -> t d -> t d -> t d -> t d -> t d -> t d -> t d -> Double -> IO ()
sparseLinear_legacyZeroGradParameters :: t d -> t d -> t d -> IO ()
sparseLinear_legacyUpdateParameters :: t d -> t d -> t d -> t d -> t d -> Double -> IO ()
-}