48 #ifndef __LAYER_BACKWARD_H__ 49 #define __LAYER_BACKWARD_H__ 51 #include "algorithms/algorithm.h" 52 #include "data_management/data/tensor.h" 53 #include "services/daal_defines.h" 54 #include "algorithms/neural_networks/layers/layer_backward_types.h" 63 namespace neural_networks
85 class LayerIface :
public daal::algorithms::Analysis<batch>
88 typedef algorithms::neural_networks::layers::backward::Input InputType;
89 typedef algorithms::neural_networks::layers::Parameter ParameterType;
90 typedef algorithms::neural_networks::layers::backward::Result ResultType;
92 virtual ~LayerIface() {};
98 virtual backward::ResultPtr getLayerResult() = 0;
104 virtual InputType *getLayerInput() = 0;
110 virtual ParameterType *getLayerParameter() = 0;
117 services::SharedPtr<daal::algorithms::neural_networks::layers::backward::interface1::LayerIface> clone()
const 119 return services::SharedPtr<LayerIface>(cloneImpl());
125 virtual services::Status allocateResult() = 0;
136 virtual services::Status addInput(backward::ResultPtr result,
size_t resultIndex,
size_t inputIndex) = 0;
139 virtual LayerIface *cloneImpl()
const = 0;
142 typedef services::SharedPtr<LayerIface> LayerIfacePtr;
153 class LayerIfaceImpl :
public LayerIface
156 typedef LayerIface super;
158 typedef super::InputType InputType;
159 typedef super::ParameterType ParameterType;
160 typedef super::ResultType ResultType;
162 virtual ~LayerIfaceImpl() {};
167 virtual services::Status addInput(backward::ResultPtr result,
size_t resultIndex,
size_t inputIndex) DAAL_C11_OVERRIDE
169 return getLayerInput()->addInputGradient(result->getGradient(resultIndex), inputIndex);
173 typedef services::SharedPtr<LayerIfaceImpl> LayerIfaceImplPtr;
177 using interface1::LayerIface;
178 using interface1::LayerIfacePtr;
179 using interface1::LayerIfaceImpl;
180 using interface1::LayerIfaceImplPtr;
daal::algorithms::neural_networks::layers::backward::interface1::LayerIface::addInput
virtual services::Status addInput(backward::ResultPtr result, size_t resultIndex, size_t inputIndex)=0
daal::algorithms::neural_networks::layers::backward::interface1::LayerIfaceImpl
Implements the abstract interface LayerIface. LayerIfaceImpl is, in turn, the base class for the clas...
Definition: layer_backward.h:153
daal::algorithms::neural_networks::layers::backward::interface1::LayerIfaceImpl::addInput
virtual services::Status addInput(backward::ResultPtr result, size_t resultIndex, size_t inputIndex) DAAL_C11_OVERRIDE
Definition: layer_backward.h:167
daal::services::interface1::Status
Class that holds the results of API calls. In case of API routine failure it contains the list of err...
Definition: error_handling.h:491
daal
Definition: algorithm_base_common.h:57
daal::algorithms::neural_networks::layers::backward::interface1::LayerIface
Abstract class which defines interface for the layer.
Definition: layer_backward.h:85
daal::algorithms::neural_networks::layers::interface1::Parameter
Definition: layer_types.h:110
daal::algorithms::neural_networks::layers::backward::interface1::LayerIface::getLayerParameter
virtual ParameterType * getLayerParameter()=0
daal::services::interface1::SharedPtr
Shared pointer that retains shared ownership of an object through a pointer. Several SharedPtr object...
Definition: daal_shared_ptr.h:187
daal::algorithms::Analysis
Provides methods for execution of operations over data, such as computation of Summary Statistics est...
Definition: analysis.h:94
daal::algorithms::neural_networks::layers::backward::interface1::LayerIface::clone
services::SharedPtr< daal::algorithms::neural_networks::layers::backward::interface1::LayerIface > clone() const
Definition: layer_backward.h:117
daal::algorithms::neural_networks::layers::backward::interface1::Result
Provides methods to access the result obtained with the compute() method of the layer algorithm...
Definition: layer_backward_types.h:224
daal::algorithms::neural_networks::layers::backward::interface1::LayerIface::getLayerResult
virtual backward::ResultPtr getLayerResult()=0
daal::algorithms::neural_networks::layers::backward::interface1::LayerIface::allocateResult
virtual services::Status allocateResult()=0
daal::algorithms::neural_networks::layers::backward::interface1::LayerIface::getLayerInput
virtual InputType * getLayerInput()=0