48 #ifndef __LAYERS__BACKWARD__TYPES__H__
49 #define __LAYERS__BACKWARD__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"
57 #include "algorithms/neural_networks/layers/layer_forward_types.h"
66 namespace neural_networks
91 lastInputId = inputGradient
100 inputFromForward = lastInputId + 1,
101 lastInputLayerDataId = inputFromForward
113 lastResultId = biasDerivatives
120 enum ResultLayerDataId
122 resultLayerData = lastResultId + 1,
123 lastResultLayerDataId = resultLayerData
135 class DAAL_EXPORT InputIface :
public daal::algorithms::Input
141 InputIface(
size_t nElements) : daal::algorithms::Input(nElements) {}
142 InputIface(
const InputIface& other);
143 virtual ~InputIface() {}
150 class DAAL_EXPORT Input :
public InputIface
155 Input(
const Input& other);
164 data_management::TensorPtr
get(InputId id)
const;
171 LayerDataPtr
get(InputLayerDataId id)
const;
178 void set(InputId
id,
const data_management::TensorPtr &ptr);
185 void set(InputLayerDataId
id,
const LayerDataPtr &ptr);
194 virtual services::Status addInputGradient(
const data_management::TensorPtr &igTensor,
size_t index);
202 virtual services::Status setInputFromForward(forward::ResultPtr result);
211 services::Status check(
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
217 virtual LayerInputLayout getLayout()
const;
224 class DAAL_EXPORT Result :
public daal::algorithms::Result
226 DECLARE_SERIALIZABLE_IMPL();
228 DAAL_CAST_OPERATOR(Result);
232 virtual ~Result() {};
242 template <
typename algorithmFPType>
243 services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
const int method)
245 return services::Status();
253 data_management::TensorPtr
get(ResultId id)
const;
260 void set(ResultId
id,
const data_management::TensorPtr &ptr);
267 LayerDataPtr
get(backward::ResultLayerDataId id)
const;
274 void set(ResultLayerDataId
id,
const LayerDataPtr &ptr);
279 int getSerializationTag() const DAAL_C11_OVERRIDE {
return SERIALIZATION_NEURAL_NETWORKS_LAYERS_BACKWARD_RESULT_ID; }
289 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
290 int method)
const DAAL_C11_OVERRIDE;
296 virtual LayerResultLayout getLayout()
const;
303 virtual data_management::TensorPtr getGradient(
size_t index)
const;
306 template<
typename Archive,
bool onDeserialize>
307 services::Status serialImpl(Archive *arch)
309 return daal::algorithms::Result::serialImpl<Archive, onDeserialize>(arch);
312 typedef services::SharedPtr<Result> ResultPtr;
314 using interface1::InputIface;
315 using interface1::Input;
316 using interface1::Result;
317 using interface1::ResultPtr;
daal::algorithms::neural_networks::layers::backward::weightDerivatives
Definition: layer_backward_types.h:111
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::backward::gradient
Definition: layer_backward_types.h:110
daal::algorithms::neural_networks::layers::backward::InputId
InputId
Definition: layer_backward_types.h:88
daal::algorithms::neural_networks::layers::backward::inputFromForward
Definition: layer_backward_types.h:100
daal::algorithms::neural_networks::layers::backward::biasDerivatives
Definition: layer_backward_types.h:112
daal::algorithms::neural_networks::layers::backward::InputLayerDataId
InputLayerDataId
Definition: layer_backward_types.h:98
daal::algorithms::neural_networks::layers::backward::interface1::Result::allocate
services::Status allocate(const daal::algorithms::Input *input, const daal::algorithms::Parameter *par, const int method)
Definition: layer_backward_types.h:243
daal::algorithms::neural_networks::layers::LayerInputLayout
LayerInputLayout
Definition: layer_types.h:83
daal::algorithms::neural_networks::layers::backward::ResultLayerDataId
ResultLayerDataId
Definition: layer_backward_types.h:120
daal::algorithms::neural_networks::layers::backward::inputGradient
Definition: layer_backward_types.h:90
daal::algorithms::neural_networks::layers::LayerResultLayout
LayerResultLayout
Definition: layer_types.h:94
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::ResultId
ResultId
Definition: layer_backward_types.h:108
daal::algorithms::neural_networks::layers::backward::interface1::Result::getSerializationTag
int getSerializationTag() const DAAL_C11_OVERRIDE
Definition: layer_backward_types.h:279