24 #ifndef __LAYER_FORWARD_H__
25 #define __LAYER_FORWARD_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_forward_types.h"
31 #include "layer_forward_container_base.h"
40 namespace neural_networks
63 class LayerIface :
public daal::algorithms::Analysis<batch>
66 typedef algorithms::neural_networks::layers::forward::Input InputType;
67 typedef algorithms::neural_networks::layers::Parameter ParameterType;
68 typedef algorithms::neural_networks::layers::forward::Result ResultType;
73 virtual ~LayerIface() {};
80 virtual forward::ResultPtr getLayerResult() = 0;
87 virtual InputType *getLayerInput() = 0;
94 virtual ParameterType *getLayerParameter() = 0;
102 daal::algorithms::neural_networks::layers::forward::LayerIfacePtr clone()
const
104 return LayerIfacePtr(cloneImpl());
111 virtual services::Status allocateResult() = 0;
117 DAAL_DEPRECATED_VIRTUAL
virtual services::Status allocateInput() = 0;
123 DAAL_DEPRECATED_VIRTUAL
virtual services::Status initializeInput() = 0;
134 virtual services::Status addInput(forward::ResultPtr result,
size_t resultIndex,
size_t inputIndex) = 0;
141 DAAL_DEPRECATED_VIRTUAL
virtual layers::forward::LayerIfacePtr getLayerForPrediction()
const = 0;
147 virtual LayerIface *cloneImpl()
const = 0;
150 typedef services::SharedPtr<LayerIface> LayerIfacePtr;
162 class LayerIfaceImpl :
public LayerIface
165 typedef LayerIface super;
167 typedef super::InputType InputType;
168 typedef super::ParameterType ParameterType;
169 typedef super::ResultType ResultType;
174 virtual ~LayerIfaceImpl() {};
180 DAAL_DEPRECATED_VIRTUAL
virtual services::Status allocateInput() DAAL_C11_OVERRIDE
182 this->_ac->setArguments(this->_in, this->_res, this->_par);
183 LayerContainerIfaceImpl *ac =
dynamic_cast<LayerContainerIfaceImpl *
>(_ac);
184 return ac->allocateInput();
191 DAAL_DEPRECATED_VIRTUAL
virtual services::Status initializeInput() DAAL_C11_OVERRIDE
193 this->_ac->setArguments(this->_in, this->_res, this->_par);
195 LayerContainerIfaceImpl *ac =
dynamic_cast<LayerContainerIfaceImpl *
>(_ac);
196 return ac->initializeInput();
203 DAAL_DEPRECATED_VIRTUAL
virtual services::Status addInput(forward::ResultPtr result,
size_t resultIndex,
size_t inputIndex) DAAL_C11_OVERRIDE
205 return getLayerInput()->addData(result->getValue(resultIndex), inputIndex);
213 DAAL_DEPRECATED_VIRTUAL
virtual layers::forward::LayerIfacePtr getLayerForPrediction() const DAAL_C11_OVERRIDE
215 return this->clone();
222 DAAL_DEPRECATED_VIRTUAL
virtual void setParameter() DAAL_C11_OVERRIDE
224 if(this->getLayerParameter())
226 this->getLayerParameter()->weightsInitializer->getParameter()->layer = services::SharedPtr<LayerIface>(
this, services::EmptyDeleter());
227 this->getLayerParameter()->biasesInitializer->getParameter()->layer = services::SharedPtr<LayerIface>(
this, services::EmptyDeleter());
232 typedef services::SharedPtr<LayerIfaceImpl> LayerIfaceImplPtr;
235 using interface1::LayerIface;
236 using interface1::LayerIfacePtr;
237 using interface1::LayerIfaceImpl;
238 using interface1::LayerIfaceImplPtr;
daal::algorithms::neural_networks::layers::forward::interface1::LayerIface::getLayerParameter
virtual ParameterType * getLayerParameter()=0
daal::algorithms::neural_networks::layers::forward::interface1::LayerIface::getLayerResult
virtual forward::ResultPtr getLayerResult()=0
daal::algorithms::neural_networks::layers::forward::interface1::LayerIfaceImpl::addInput
virtual DAAL_DEPRECATED_VIRTUAL services::Status addInput(forward::ResultPtr result, size_t resultIndex, size_t inputIndex) DAAL_C11_OVERRIDE
Definition: layer_forward.h:203
daal::algorithms::neural_networks::layers::forward::interface1::LayerContainerIfaceImpl
Provides methods of base container for forward layers. This class is associated with the daal::algori...
Definition: layer_forward_container_base.h:63
daal::algorithms::neural_networks::layers::forward::interface1::LayerIfaceImpl::initializeInput
virtual DAAL_DEPRECATED_VIRTUAL services::Status initializeInput() DAAL_C11_OVERRIDE
Definition: layer_forward.h:191
daal::algorithms::neural_networks::layers::forward::interface1::LayerIface::allocateResult
virtual services::Status allocateResult()=0
daal::algorithms::neural_networks::layers::forward::interface1::LayerIface::getLayerInput
virtual InputType * getLayerInput()=0
daal::algorithms::neural_networks::layers::forward::interface1::LayerIfaceImpl::getLayerForPrediction
virtual DAAL_DEPRECATED_VIRTUAL layers::forward::LayerIfacePtr getLayerForPrediction() const DAAL_C11_OVERRIDE
Definition: layer_forward.h:213
daal::algorithms::neural_networks::layers::forward::interface1::LayerContainerIfaceImpl::initializeInput
virtual DAAL_DEPRECATED_VIRTUAL services::Status initializeInput()
daal::algorithms::neural_networks::layers::forward::interface1::LayerIface
Abstract class which defines interface for the layer.
Definition: layer_forward.h:63
daal::algorithms::neural_networks::layers::forward::interface1::LayerIface::allocateInput
virtual DAAL_DEPRECATED_VIRTUAL services::Status allocateInput()=0
daal::algorithms::neural_networks::layers::forward::interface1::LayerIface::addInput
virtual services::Status addInput(forward::ResultPtr result, size_t resultIndex, size_t inputIndex)=0
daal::algorithms::neural_networks::layers::forward::interface1::LayerIfaceImpl::allocateInput
virtual DAAL_DEPRECATED_VIRTUAL services::Status allocateInput() DAAL_C11_OVERRIDE
Definition: layer_forward.h:180
daal::algorithms::neural_networks::layers::forward::interface1::LayerIface::initializeInput
virtual DAAL_DEPRECATED_VIRTUAL services::Status initializeInput()=0
daal::algorithms::neural_networks::layers::forward::interface1::LayerIface::getLayerForPrediction
virtual DAAL_DEPRECATED_VIRTUAL layers::forward::LayerIfacePtr getLayerForPrediction() const =0
daal::algorithms::neural_networks::layers::forward::interface1::LayerIfaceImpl
Implements the abstract interface LayerIface. LayerIfaceImpl is, in turn, the base class for the clas...
Definition: layer_forward.h:162
daal::algorithms::neural_networks::layers::forward::interface1::LayerIface::clone
daal::algorithms::neural_networks::layers::forward::LayerIfacePtr clone() const
Definition: layer_forward.h:102
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::forward::interface1::LayerContainerIfaceImpl::allocateInput
virtual DAAL_DEPRECATED_VIRTUAL services::Status allocateInput()