24 #ifndef __LAYER_BACKWARD_H__
25 #define __LAYER_BACKWARD_H__
27 #include "algorithms/algorithm.h"
28 #include "data_management/data/tensor.h"
29 #include "services/daal_defines.h"
30 #include "algorithms/neural_networks/layers/layer_backward_types.h"
39 namespace neural_networks
62 class LayerIface :
public daal::algorithms::Analysis<batch>
65 typedef algorithms::neural_networks::layers::backward::Input InputType;
66 typedef algorithms::neural_networks::layers::Parameter ParameterType;
67 typedef algorithms::neural_networks::layers::backward::Result ResultType;
72 virtual ~LayerIface() {};
79 virtual backward::ResultPtr getLayerResult() = 0;
86 virtual InputType *getLayerInput() = 0;
93 virtual ParameterType *getLayerParameter() = 0;
101 services::SharedPtr<daal::algorithms::neural_networks::layers::backward::interface1::LayerIface> clone()
const
103 return services::SharedPtr<LayerIface>(cloneImpl());
110 virtual services::Status allocateResult() = 0;
122 virtual services::Status addInput(backward::ResultPtr result,
size_t resultIndex,
size_t inputIndex) = 0;
128 virtual LayerIface *cloneImpl()
const = 0;
131 typedef services::SharedPtr<LayerIface> LayerIfacePtr;
143 class LayerIfaceImpl :
public LayerIface
146 typedef LayerIface super;
148 typedef super::InputType InputType;
149 typedef super::ParameterType ParameterType;
150 typedef super::ResultType ResultType;
155 virtual ~LayerIfaceImpl() {};
161 DAAL_DEPRECATED_VIRTUAL
virtual services::Status addInput(backward::ResultPtr result,
size_t resultIndex,
size_t inputIndex) DAAL_C11_OVERRIDE
163 return getLayerInput()->addInputGradient(result->getGradient(resultIndex), inputIndex);
167 typedef services::SharedPtr<LayerIfaceImpl> LayerIfaceImplPtr;
171 using interface1::LayerIface;
172 using interface1::LayerIfacePtr;
173 using interface1::LayerIfaceImpl;
174 using interface1::LayerIfaceImplPtr;
daal::algorithms::neural_networks::layers::backward::interface1::LayerIface::getLayerInput
virtual InputType * getLayerInput()=0
daal::algorithms::neural_networks::layers::backward::interface1::LayerIface::allocateResult
virtual services::Status allocateResult()=0
daal::algorithms::neural_networks::layers::backward::interface1::LayerIfaceImpl::~LayerIfaceImpl
virtual ~LayerIfaceImpl()
Definition: layer_backward.h:155
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:101
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:143
daal::algorithms::neural_networks::layers::backward::interface1::LayerIface::cloneImpl
virtual LayerIface * cloneImpl() const =0
daal::algorithms::neural_networks::layers::interface1::LayerIfacePtr
services::SharedPtr< LayerIface > LayerIfacePtr
Definition: layer.h:67
daal::algorithms::neural_networks::layers::backward::interface1::LayerIface
Abstract class which defines interface for the layer.
Definition: layer_backward.h:62
daal::algorithms::neural_networks::layers::backward::interface1::LayerIface::~LayerIface
virtual ~LayerIface()
Definition: layer_backward.h:72
daal::algorithms::neural_networks::layers::backward::interface1::LayerIface::getLayerResult
virtual backward::ResultPtr getLayerResult()=0
daal::algorithms::neural_networks::layers::backward::interface1::LayerIfaceImpl::addInput
virtual DAAL_DEPRECATED_VIRTUAL services::Status addInput(backward::ResultPtr result, size_t resultIndex, size_t inputIndex) DAAL_C11_OVERRIDE
Definition: layer_backward.h:161
daal::algorithms::Analysis
Provides methods for execution of operations over data, such as computation of Summary Statistics est...
Definition: analysis.h:70
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::interface1::LayerIface
Abstract class that specifies the interface of layer.
Definition: layer.h:60
daal::algorithms::neural_networks::layers::backward::interface1::LayerIface::getLayerParameter
virtual ParameterType * getLayerParameter()=0