22 #ifndef __LAYERS__FORWARD__TYPES__H__
23 #define __LAYERS__FORWARD__TYPES__H__
25 #include "algorithms/algorithm.h"
26 #include "data_management/data/tensor.h"
27 #include "services/daal_defines.h"
28 #include "services/collection.h"
29 #include "data_management/data/data_collection.h"
30 #include "algorithms/neural_networks/layers/layer_types.h"
39 namespace neural_networks
75 inputLayerData = lastInputId + 1,
76 lastInputLayerDataId = inputLayerData
93 enum ResultLayerDataId
95 resultForBackward = lastResultId + 1,
96 lastResultLayerDataId = resultForBackward
108 class DAAL_EXPORT InputIface :
public daal::algorithms::Input
114 InputIface(
size_t nElements) : daal::algorithms::Input(nElements) {}
115 InputIface(
const InputIface& other);
116 virtual ~InputIface() {}
123 class DAAL_EXPORT Input :
public InputIface
130 Input(
size_t nElements = lastInputLayerDataId + 1);
131 Input(
const Input& other);
140 data_management::TensorPtr
get(forward::InputId id)
const;
147 void set(InputId
id,
const data_management::TensorPtr &ptr);
154 LayerDataPtr
get(forward::InputLayerDataId id)
const;
161 void set(InputLayerDataId
id,
const LayerDataPtr &ptr);
170 services::Status check(
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
176 virtual LayerInputLayout getLayout();
182 virtual const services::Collection<size_t> getWeightsSizes(
const layers::Parameter *parameter)
const;
188 virtual const services::Collection<size_t> getBiasesSizes(
const layers::Parameter *parameter)
const;
197 virtual services::Status addData(
const data_management::TensorPtr &dataTensor,
size_t index);
204 virtual services::Status eraseInputData()
206 set(layers::forward::data, data_management::TensorPtr());
207 return services::Status();
215 class DAAL_EXPORT Result :
public daal::algorithms::Result
217 DECLARE_SERIALIZABLE_IMPL();
219 DAAL_CAST_OPERATOR(Result);
223 virtual ~Result() {};
233 template <
typename algorithmFPType>
234 services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
const int method)
236 return services::Status();
246 virtual const services::Collection<size_t> getValueSize(
const services::Collection<size_t> &inputSize,
247 const daal::algorithms::Parameter *par,
const int method)
const = 0;
256 virtual services::Collection<size_t> getValueSize(
const services::Collection< services::Collection<size_t> > &inputSize,
257 const daal::algorithms::Parameter *par,
const int method);
266 virtual services::Collection< services::Collection<size_t> > getValueCollectionSize(
const services::Collection<size_t> &inputSize,
267 const daal::algorithms::Parameter *par,
const int method);
274 data_management::TensorPtr
get(ResultId id)
const;
281 LayerDataPtr
get(ResultLayerDataId id)
const;
288 void set(ResultId
id,
const data_management::TensorPtr &ptr);
295 void set(ResultLayerDataId
id,
const LayerDataPtr &ptr);
300 int getSerializationTag() const DAAL_C11_OVERRIDE {
return SERIALIZATION_NEURAL_NETWORKS_LAYERS_FORWARD_RESULT_ID; }
310 virtual services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
311 int method)
const DAAL_C11_OVERRIDE;
317 virtual LayerResultLayout getLayout();
325 virtual services::Status setResultForBackward(
const daal::algorithms::Input *input)
327 return services::Status();
335 virtual data_management::TensorPtr getValue(
size_t index)
const;
339 template<
typename Archive,
bool onDeserialize>
340 services::Status serialImpl(Archive *arch)
342 return daal::algorithms::Result::serialImpl<Archive, onDeserialize>(arch);
345 typedef services::SharedPtr<Result> ResultPtr;
347 using interface1::InputIface;
348 using interface1::Input;
349 using interface1::Result;
350 using interface1::ResultPtr;
daal::algorithms::neural_networks::layers::forward::interface1::Result::allocate
services::Status allocate(const daal::algorithms::Input *input, const daal::algorithms::Parameter *par, const int method)
Definition: layer_forward_types.h:234
daal::algorithms::neural_networks::layers::forward::InputId
InputId
Definition: layer_forward_types.h:61
daal::algorithms::neural_networks::layers::forward::ResultId
ResultId
Definition: layer_forward_types.h:83
daal
Definition: algorithm_base_common.h:31
daal::algorithms::interface1::Result
Base class to represent final results of the computation. Algorithm-specific final results are repres...
Definition: algorithm_types.h:307
daal::algorithms::neural_networks::layers::forward::ResultLayerDataId
ResultLayerDataId
Definition: layer_forward_types.h:93
daal::algorithms::neural_networks::layers::forward::resultForBackward
Definition: layer_forward_types.h:95
daal::algorithms::neural_networks::layers::LayerInputLayout
LayerInputLayout
Definition: layer_types.h:57
daal::algorithms::neural_networks::layers::forward::interface1::Result
Provides methods to access the result obtained with the compute() method of the layer algorithm...
Definition: layer_forward_types.h:215
daal::algorithms::neural_networks::layers::forward::interface1::Result::setResultForBackward
virtual services::Status setResultForBackward(const daal::algorithms::Input *input)
Definition: layer_forward_types.h:325
daal::algorithms::neural_networks::layers::forward::value
Definition: layer_forward_types.h:85
daal::algorithms::neural_networks::layers::forward::data
Definition: layer_forward_types.h:63
daal::algorithms::neural_networks::layers::LayerResultLayout
LayerResultLayout
Definition: layer_types.h:68
daal::algorithms::neural_networks::layers::forward::interface1::Result::getSerializationTag
int getSerializationTag() const DAAL_C11_OVERRIDE
Definition: layer_forward_types.h:300
daal::algorithms::neural_networks::layers::forward::InputLayerDataId
InputLayerDataId
Definition: layer_forward_types.h:73