// Copyright 2016-present, Facebook, Inc. // All rights reserved. // // This source code is licensed under the license found in the // LICENSE file in the root directory of this source tree. #include "Metadata/Metadata.h" double AffineReluTrivialConvolution_updateOutput(at::Tensor input_features, at::Tensor output_features, at::Tensor affineWeight, at::Tensor affineBias, at::Tensor convWeight); void AffineReluTrivialConvolution_backward( at::Tensor input_features, at::Tensor d_input_features, at::Tensor d_output_features, at::Tensor affineWeight, at::Tensor d_affineWeight, at::Tensor affineBias, at::Tensor d_affineBias, at::Tensor convWeight, at::Tensor d_convWeight, bool additiveGrad); void BatchNormalization_updateOutput( at::Tensor input_features, at::Tensor output_features, at::Tensor saveMean, at::Tensor saveInvStd, at::Tensor runningMean, at::Tensor runningVar, at::Tensor weight, at::Tensor bias, double eps, double momentum, bool train, double leakiness); void BatchNormalization_backward( at::Tensor input_features, at::Tensor d_input_features, at::Tensor output_features, at::Tensor d_output_features, at::Tensor saveMean, at::Tensor saveInvStd, at::Tensor runningMean, at::Tensor runningVar, at::Tensor weight, at::Tensor bias, at::Tensor d_weight, at::Tensor d_bias, double leakiness); void BatchwiseMultiplicativeDropout_updateOutput(at::Tensor input_features, at::Tensor output_features, at::Tensor noise, double alpha); void BatchwiseMultiplicativeDropout_updateGradInput( at::Tensor input_features, at::Tensor d_input_features, at::Tensor d_output_features, at::Tensor noise, double alpha); void LeakyReLU_updateOutput(at::Tensor input_features, at::Tensor output_features, double alpha); void LeakyReLU_updateGradInput(at::Tensor input_features, at::Tensor d_input_features, at::Tensor d_output_features, double alpha); double NetworkInNetwork_updateOutput(at::Tensor input_features, at::Tensor output_features, at::Tensor weight, at::Tensor bias); void NetworkInNetwork_updateGradInput(at::Tensor d_input_features, at::Tensor d_output_features, at::Tensor weight); void NetworkInNetwork_accGradParameters(at::Tensor input_features, at::Tensor d_output_features, at::Tensor d_weight, at::Tensor d_bias); template void ActivePooling_updateOutput(at::Tensor inputSize, Metadata &m, at::Tensor input_features, at::Tensor output_features, bool average); template void ActivePooling_updateGradInput(at::Tensor inputSize, Metadata &m, at::Tensor input_features, at::Tensor d_input_features, at::Tensor d_output_features, bool average); template void AveragePooling_updateOutput(at::Tensor inputSize, at::Tensor outputSize, at::Tensor poolSize, at::Tensor poolStride, Metadata &m, at::Tensor input_features, at::Tensor output_features, long nFeaturesToDrop); template void AveragePooling_updateGradInput(at::Tensor inputSize, at::Tensor outputSize, at::Tensor poolSize, at::Tensor poolStride, Metadata &m, at::Tensor input_features, at::Tensor d_input_features, at::Tensor d_output_features, long nFeaturesToDrop); template double Convolution_updateOutput(at::Tensor inputSize, at::Tensor outputSize, at::Tensor filterSize, at::Tensor filterStride, Metadata &m, at::Tensor input_features, at::Tensor output_features, at::Tensor weight, at::Tensor bias); template void Convolution_backward(at::Tensor inputSize, at::Tensor outputSize, at::Tensor filterSize, at::Tensor filterStride, Metadata &m, at::Tensor input_features, at::Tensor d_input_features, at::Tensor d_output_features, at::Tensor weight, at::Tensor d_weight, at::Tensor d_bias); template double SubmanifoldConvolution_updateOutput(at::Tensor inputSize, at::Tensor filterSize, Metadata &m, at::Tensor input_features, at::Tensor output_features, at::Tensor weight, at::Tensor bias); template void SubmanifoldConvolution_backward( at::Tensor inputSize, at::Tensor filterSize, Metadata &m, at::Tensor input_features, at::Tensor d_input_features, at::Tensor d_output_features, at::Tensor weight, at::Tensor d_weight, at::Tensor d_bias); template double PermutohedralSubmanifoldConvolution_updateOutput( at::Tensor inputSize, Metadata &m, at::Tensor input_features, at::Tensor output_features, at::Tensor weight, at::Tensor bias); template void PermutohedralSubmanifoldConvolution_backward( at::Tensor inputSize, Metadata &m, at::Tensor input_features, at::Tensor d_input_features, at::Tensor d_output_features, at::Tensor weight, at::Tensor d_weight, at::Tensor d_bias); template double FullConvolution_updateOutput( at::Tensor inputSize, at::Tensor outputSize, at::Tensor filterSize, at::Tensor filterStride, Metadata &mIn, Metadata &mOut, at::Tensor input_features, at::Tensor output_features, at::Tensor weight, at::Tensor bias); template void FullConvolution_backward(at::Tensor inputSize, at::Tensor outputSize, at::Tensor filterSize, at::Tensor filterStride, Metadata &mIn, Metadata &mOut, at::Tensor input_features, at::Tensor d_input_features, at::Tensor d_output_features, at::Tensor weight, at::Tensor d_weight, at::Tensor d_bias); template double RandomizedStrideConvolution_updateOutput( at::Tensor inputSize, at::Tensor outputSize, at::Tensor filterSize, at::Tensor filterStride, Metadata &m, at::Tensor input_features, at::Tensor output_features, at::Tensor weight, at::Tensor bias); template void RandomizedStrideConvolution_backward( at::Tensor inputSize, at::Tensor outputSize, at::Tensor filterSize, at::Tensor filterStride, Metadata &m, at::Tensor input_features, at::Tensor d_input_features, at::Tensor d_output_features, at::Tensor weight, at::Tensor d_weight, at::Tensor d_bias); template double Deconvolution_updateOutput( at::Tensor inputSize, at::Tensor outputSize, at::Tensor filterSize, at::Tensor filterStride, Metadata &m, at::Tensor input_features, at::Tensor output_features, at::Tensor weight, at::Tensor bias); template void Deconvolution_backward(at::Tensor inputSize, at::Tensor outputSize, at::Tensor filterSize, at::Tensor filterStride, Metadata &m, at::Tensor input_features, at::Tensor d_input_features, at::Tensor d_output_features, at::Tensor weight, at::Tensor d_weight, at::Tensor d_bias); template void InputLayer_updateOutput(Metadata &m, at::Tensor spatialSize, at::Tensor input_coords, at::Tensor input_features, at::Tensor output_features, long batchSize, long mode); template void InputLayer_updateGradInput(Metadata &m, at::Tensor d_input_features, at::Tensor d_output_features); template void OutputLayer_updateOutput(Metadata &m, at::Tensor input_features, at::Tensor output_features); template void OutputLayer_updateGradInput(Metadata &m, at::Tensor d_input_features, at::Tensor d_output_features); template void BLInputLayer_updateOutput(Metadata &m, at::Tensor spatialSize, at::Tensor input_coords, at::Tensor input_features, at::Tensor output_features, long mode); template void BLInputLayer_updateGradInput(Metadata &m, at::Tensor d_input_features, at::Tensor d_output_features); template void BLOutputLayer_updateOutput(Metadata &m, at::Tensor input_features, at::Tensor output_features); template void BLOutputLayer_updateGradInput(Metadata &m, at::Tensor d_input_features, at::Tensor d_output_features); template void MaxPooling_updateOutput(at::Tensor inputSize, at::Tensor outputSize, at::Tensor poolSize, at::Tensor poolStride, Metadata &m, at::Tensor input_features, at::Tensor output_features, long nFeaturesToDrop); template void MaxPooling_updateGradInput( at::Tensor inputSize, at::Tensor outputSize, at::Tensor poolSize, at::Tensor poolStride, Metadata &m, at::Tensor input_features, at::Tensor d_input_features, at::Tensor output_features, at::Tensor d_output_features, long nFeaturesToDrop); template void RandomizedStrideMaxPooling_updateOutput( at::Tensor inputSize, at::Tensor outputSize, at::Tensor poolSize, at::Tensor poolStride, Metadata &m, at::Tensor input_features, at::Tensor output_features, long nFeaturesToDrop); template void RandomizedStrideMaxPooling_updateGradInput( at::Tensor inputSize, at::Tensor outputSize, at::Tensor poolSize, at::Tensor poolStride, Metadata &m, at::Tensor input_features, at::Tensor d_input_features, at::Tensor output_features, at::Tensor d_output_features, long nFeaturesToDrop); template void SparseToDense_updateOutput(at::Tensor inputSize, Metadata &m, at::Tensor input_features, at::Tensor output_features, long nPlanes); template void SparseToDense_updateGradInput(at::Tensor inputSize, Metadata &m, at::Tensor input_features, at::Tensor d_input_features, at::Tensor d_output_features); template void UnPooling_updateOutput(at::Tensor inputSize, at::Tensor outputSize, at::Tensor poolSize, at::Tensor poolStride, Metadata &m, at::Tensor input_features, at::Tensor output_features, long nFeaturesToDrop); template void UnPooling_updateGradInput(at::Tensor inputSize, at::Tensor outputSize, at::Tensor poolSize, at::Tensor poolStride, Metadata &m, at::Tensor input_features, at::Tensor d_input_features, at::Tensor d_output_features, long nFeaturesToDrop);