48 #ifndef __LAYERS__FORWARD__TYPES__H__
49 #define __LAYERS__FORWARD__TYPES__H__
51 #include "algorithms/algorithm.h"
52 #include "data_management/data/tensor.h"
53 #include "services/daal_defines.h"
54 #include "services/collection.h"
55 #include "data_management/data/data_collection.h"
56 #include "algorithms/neural_networks/layers/layer_types.h"
65 namespace neural_networks
101 inputLayerData = lastInputId + 1,
102 lastInputLayerDataId = inputLayerData
119 enum ResultLayerDataId
121 resultForBackward = lastResultId + 1,
122 lastResultLayerDataId = resultForBackward
134 class DAAL_EXPORT InputIface :
public daal::algorithms::Input
140 InputIface(
size_t nElements) : daal::algorithms::Input(nElements) {}
141 InputIface(
const InputIface& other);
142 virtual ~InputIface() {}
149 class DAAL_EXPORT Input :
public InputIface
156 Input(
size_t nElements = lastInputLayerDataId + 1);
157 Input(
const Input& other);
166 data_management::TensorPtr
get(forward::InputId id)
const;
173 void set(InputId
id,
const data_management::TensorPtr &ptr);
180 LayerDataPtr
get(forward::InputLayerDataId id)
const;
187 void set(InputLayerDataId
id,
const LayerDataPtr &ptr);
196 services::Status check(
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
202 virtual LayerInputLayout getLayout();
208 virtual const services::Collection<size_t> getWeightsSizes(
const layers::Parameter *parameter)
const;
214 virtual const services::Collection<size_t> getBiasesSizes(
const layers::Parameter *parameter)
const;
223 virtual services::Status addData(
const data_management::TensorPtr &dataTensor,
size_t index);
230 virtual services::Status eraseInputData()
232 set(layers::forward::data, data_management::TensorPtr());
233 return services::Status();
241 class DAAL_EXPORT Result :
public daal::algorithms::Result
243 DECLARE_SERIALIZABLE_IMPL();
245 DAAL_CAST_OPERATOR(Result);
249 virtual ~Result() {};
259 template <
typename algorithmFPType>
260 services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
const int method)
262 return services::Status();
272 virtual const services::Collection<size_t> getValueSize(
const services::Collection<size_t> &inputSize,
273 const daal::algorithms::Parameter *par,
const int method)
const = 0;
282 virtual services::Collection<size_t> getValueSize(
const services::Collection< services::Collection<size_t> > &inputSize,
283 const daal::algorithms::Parameter *par,
const int method);
292 virtual services::Collection< services::Collection<size_t> > getValueCollectionSize(
const services::Collection<size_t> &inputSize,
293 const daal::algorithms::Parameter *par,
const int method);
300 data_management::TensorPtr
get(ResultId id)
const;
307 LayerDataPtr
get(ResultLayerDataId id)
const;
314 void set(ResultId
id,
const data_management::TensorPtr &ptr);
321 void set(ResultLayerDataId
id,
const LayerDataPtr &ptr);
326 int getSerializationTag() const DAAL_C11_OVERRIDE {
return SERIALIZATION_NEURAL_NETWORKS_LAYERS_FORWARD_RESULT_ID; }
336 virtual services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
337 int method)
const DAAL_C11_OVERRIDE;
343 virtual LayerResultLayout getLayout();
351 virtual services::Status setResultForBackward(
const daal::algorithms::Input *input)
353 return services::Status();
361 virtual data_management::TensorPtr getValue(
size_t index)
const;
365 template<
typename Archive,
bool onDeserialize>
366 services::Status serialImpl(Archive *arch)
368 return daal::algorithms::Result::serialImpl<Archive, onDeserialize>(arch);
371 typedef services::SharedPtr<Result> ResultPtr;
373 using interface1::InputIface;
374 using interface1::Input;
375 using interface1::Result;
376 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:260
daal::algorithms::neural_networks::layers::forward::InputId
InputId
Definition: layer_forward_types.h:87
daal::algorithms::neural_networks::layers::forward::ResultId
ResultId
Definition: layer_forward_types.h:109
daal
Definition: algorithm_base_common.h:57
daal::algorithms::interface1::Result
Base class to represent final results of the computation. Algorithm-specific final results are repres...
Definition: algorithm_types.h:331
daal::algorithms::neural_networks::layers::forward::ResultLayerDataId
ResultLayerDataId
Definition: layer_forward_types.h:119
daal::algorithms::neural_networks::layers::forward::resultForBackward
Definition: layer_forward_types.h:121
daal::algorithms::neural_networks::layers::LayerInputLayout
LayerInputLayout
Definition: layer_types.h:83
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:241
daal::algorithms::neural_networks::layers::forward::interface1::Result::setResultForBackward
virtual services::Status setResultForBackward(const daal::algorithms::Input *input)
Definition: layer_forward_types.h:351
daal::algorithms::neural_networks::layers::forward::value
Definition: layer_forward_types.h:111
daal::algorithms::neural_networks::layers::forward::data
Definition: layer_forward_types.h:89
daal::algorithms::neural_networks::layers::LayerResultLayout
LayerResultLayout
Definition: layer_types.h:94
daal::algorithms::neural_networks::layers::forward::interface1::Result::getSerializationTag
int getSerializationTag() const DAAL_C11_OVERRIDE
Definition: layer_forward_types.h:326
daal::algorithms::neural_networks::layers::forward::InputLayerDataId
InputLayerDataId
Definition: layer_forward_types.h:99