48 #ifndef __IMPLICIT_ALS_TRAINING_INIT_TYPES_H__ 49 #define __IMPLICIT_ALS_TRAINING_INIT_TYPES_H__ 51 #include "algorithms/implicit_als/implicit_als_model.h" 52 #include "algorithms/implicit_als/implicit_als_training_types.h" 53 #include "data_management/data/csr_numeric_table.h" 54 #include "algorithms/engines/mt19937/mt19937.h" 60 namespace implicit_als
101 enum Step2LocalInputId
103 inputOfStep2FromStep1,
105 lastStep2LocalInputId = inputOfStep2FromStep1
113 enum PartialResultBaseId
115 outputOfInitForComputeStep3,
119 lastPartialResultBaseId = offsets
129 partialModel = lastPartialResultBaseId + 1,
130 lastPartialResultId = partialModel
138 enum PartialResultCollectionId
140 outputOfStep1ForStep2 = lastPartialResultId + 1,
142 lastPartialResultCollectionId = outputOfStep1ForStep2
150 enum DistributedPartialResultStep2Id
152 transposedData = lastPartialResultBaseId + 1,
153 lastDistributedPartialResultStep2Id = transposedData
178 struct DAAL_EXPORT Parameter :
public daal::algorithms::Parameter
186 Parameter(
size_t nFactors = 10,
size_t fullNUsers = 0,
size_t seed = 777777);
191 engines::EnginePtr engine;
193 services::Status check() const DAAL_C11_OVERRIDE;
204 struct DAAL_EXPORT DistributedParameter : public Parameter
212 DistributedParameter(
size_t nFactors = 10,
size_t fullNUsers = 0,
size_t seed = 777777);
214 data_management::NumericTablePtr partition;
220 services::Status check() const DAAL_C11_OVERRIDE;
228 class DAAL_EXPORT Input : public daal::algorithms::Input
231 Input(
size_t nElements = lastInputId + 1);
232 Input(
const Input& other) : daal::algorithms::Input(other){}
241 data_management::NumericTablePtr
get(InputId id)
const;
248 void set(InputId id,
const data_management::NumericTablePtr &ptr);
254 size_t getNumberOfItems()
const;
261 services::Status check(
const daal::algorithms::Parameter *parameter,
int method)
const DAAL_C11_OVERRIDE;
268 template<ComputeStep step>
269 class DistributedInput
278 class DAAL_EXPORT DistributedInput<step1Local> :
public Input
285 DistributedInput(
const DistributedInput& other) : Input(other){}
287 virtual ~DistributedInput() {}
299 class DAAL_EXPORT DistributedInput<step2Local> :
public daal::algorithms::Input
306 DistributedInput(
const DistributedInput& other) : daal::algorithms::Input(other){}
308 virtual ~DistributedInput() {}
315 data_management::KeyValueDataCollectionPtr
get(Step2LocalInputId id)
const;
322 void set(Step2LocalInputId id,
const data_management::KeyValueDataCollectionPtr &ptr);
329 services::Status check(
const daal::algorithms::Parameter *parameter,
int method)
const DAAL_C11_OVERRIDE;
337 class DAAL_EXPORT PartialResultBase :
public daal::algorithms::PartialResult
340 DECLARE_SERIALIZABLE_CAST(PartialResultBase);
347 PartialResultBase(
size_t nElements = 0);
354 data_management::KeyValueDataCollectionPtr
get(PartialResultBaseId id)
const;
362 data_management::NumericTablePtr
get(PartialResultBaseId id,
size_t key)
const;
369 void set(PartialResultBaseId id,
const data_management::KeyValueDataCollectionPtr &ptr);
377 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
int method)
const DAAL_C11_OVERRIDE;
380 template <
typename algorithmFPType>
381 DAAL_EXPORT services::Status allocate(
size_t nParts);
384 template<
typename Archive,
bool onDeserialize>
385 services::Status serialImpl(Archive *arch)
387 return daal::algorithms::PartialResult::serialImpl<Archive, onDeserialize>(arch);
390 services::Status checkImpl(
size_t nParts)
const;
398 class DAAL_EXPORT PartialResult :
public PartialResultBase
401 DECLARE_SERIALIZABLE_CAST(PartialResult);
405 using PartialResultBase::get;
406 using PartialResultBase::set;
414 template <
typename algorithmFPType>
415 DAAL_EXPORT services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
const int method);
422 PartialModelPtr
get(PartialResultId id)
const;
429 void set(PartialResultId id,
const PartialModelPtr &ptr);
436 data_management::KeyValueDataCollectionPtr
get(PartialResultCollectionId id)
const;
444 data_management::NumericTablePtr
get(PartialResultCollectionId id,
size_t key)
const;
451 void set(PartialResultCollectionId id,
const data_management::KeyValueDataCollectionPtr &ptr);
459 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
int method)
const DAAL_C11_OVERRIDE;
463 template<
typename Archive,
bool onDeserialize>
464 services::Status serialImpl(Archive *arch)
466 return daal::algorithms::PartialResult::serialImpl<Archive, onDeserialize>(arch);
475 class DAAL_EXPORT DistributedPartialResultStep2 :
public PartialResultBase
478 DECLARE_SERIALIZABLE_CAST(DistributedPartialResultStep2);
480 DistributedPartialResultStep2();
482 using PartialResultBase::get;
483 using PartialResultBase::set;
491 template <
typename algorithmFPType>
492 DAAL_EXPORT services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
const int method);
499 data_management::NumericTablePtr
get(DistributedPartialResultStep2Id id)
const;
506 void set(DistributedPartialResultStep2Id id,
const data_management::NumericTablePtr &ptr);
514 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
int method)
const DAAL_C11_OVERRIDE;
518 template<
typename Archive,
bool onDeserialize>
519 services::Status serialImpl(Archive *arch)
521 return daal::algorithms::PartialResult::serialImpl<Archive, onDeserialize>(arch);
530 class DAAL_EXPORT Result :
public daal::algorithms::implicit_als::training::Result
533 DECLARE_SERIALIZABLE_CAST(Result);
540 daal::algorithms::implicit_als::ModelPtr
get(ResultId id)
const;
547 void set(ResultId id,
const daal::algorithms::implicit_als::ModelPtr &ptr);
551 template<
typename Archive,
bool onDeserialize>
552 services::Status serialImpl(Archive *arch)
554 return training::Result::serialImpl<Archive, onDeserialize>(arch);
557 typedef services::SharedPtr<Result> ResultPtr;
558 typedef services::SharedPtr<PartialResult> PartialResultPtr;
559 typedef services::SharedPtr<DistributedPartialResultStep2> DistributedPartialResultStep2Ptr;
562 using interface1::Parameter;
563 using interface1::DistributedParameter;
564 using interface1::Input;
565 using interface1::DistributedInput;
566 using interface1::PartialResultBase;
567 using interface1::PartialResult;
568 using interface1::PartialResultPtr;
569 using interface1::DistributedPartialResultStep2;
570 using interface1::DistributedPartialResultStep2Ptr;
571 using interface1::Result;
572 using interface1::ResultPtr;
daal::step2Local
Definition: daal_defines.h:148
daal::algorithms::implicit_als::training::init::Step2LocalInputId
Step2LocalInputId
Definition: implicit_als_training_init_types.h:101
daal::services::interface1::Status
Class that holds the results of API calls. In case of API routine failure it contains the list of err...
Definition: error_handling.h:491
daal
Definition: algorithm_base_common.h:57
daal::algorithms::implicit_als::training::init::PartialResultId
PartialResultId
Available identifiers of partial results of the implicit ALS initialization algorithm in the first st...
Definition: implicit_als_training_init_types.h:127
daal::algorithms::implicit_als::training::init::partialModel
Definition: implicit_als_training_init_types.h:129
daal::algorithms::implicit_als::training::init::InputId
InputId
Available identifiers of input objects for the implicit ALS initialization algorithm.
Definition: implicit_als_training_init_types.h:90
daal::algorithms::implicit_als::training::init::model
Definition: implicit_als_training_init_types.h:162
daal::algorithms::implicit_als::training::init::interface1::DistributedPartialResultStep2
Provides methods to access partial results obtained with the compute() method of the implicit ALS ini...
Definition: implicit_als_training_init_types.h:475
daal::algorithms::implicit_als::training::init::DistributedPartialResultStep2Id
DistributedPartialResultStep2Id
Definition: implicit_als_training_init_types.h:150
daal::algorithms::interface1::PartialResult
Base class to represent partial results of the computation. Algorithm-specific partial results are re...
Definition: algorithm_types.h:253
daal::algorithms::implicit_als::training::init::fastCSR
Definition: implicit_als_training_init_types.h:83
daal::algorithms::implicit_als::training::init::interface1::PartialResult
Provides methods to access partial results obtained with the compute() method of the implicit ALS ini...
Definition: implicit_als_training_init_types.h:398
daal::algorithms::implicit_als::training::init::interface1::DistributedParameter::partition
data_management::NumericTablePtr partition
Definition: implicit_als_training_init_types.h:214
daal::algorithms::implicit_als::training::init::interface1::PartialResultBase::get
data_management::KeyValueDataCollectionPtr get(PartialResultBaseId id) const
daal::algorithms::implicit_als::training::init::defaultDense
Definition: implicit_als_training_init_types.h:82
daal::algorithms::implicit_als::training::init::transposedData
Definition: implicit_als_training_init_types.h:152
daal::algorithms::interface1::Parameter
Base class to represent computation parameters. Algorithm-specific parameters are represented as deri...
Definition: algorithm_types.h:86
daal::algorithms::implicit_als::training::init::interface1::PartialResultBase
Provides interface to access partial results obtained with the implicit ALS initialization algorithm ...
Definition: implicit_als_training_init_types.h:337
daal::services::interface1::SharedPtr
Shared pointer that retains shared ownership of an object through a pointer. Several SharedPtr object...
Definition: daal_shared_ptr.h:187
daal::algorithms::implicit_als::training::init::ResultId
ResultId
Available identifiers of the results of the implicit ALS initialization algorithm.
Definition: implicit_als_training_init_types.h:160
daal::algorithms::implicit_als::training::init::interface1::DistributedParameter
Parameters of the compute() method of the implicit ALS initialization algorithm in the distributed co...
Definition: implicit_als_training_init_types.h:204
daal::algorithms::implicit_als::training::init::data
Definition: implicit_als_training_init_types.h:92
daal::algorithms::implicit_als::training::init::outputOfInitForComputeStep3
Definition: implicit_als_training_init_types.h:115
daal::algorithms::implicit_als::training::init::interface1::PartialResultBase::set
void set(PartialResultBaseId id, const data_management::KeyValueDataCollectionPtr &ptr)
daal::algorithms::implicit_als::training::init::interface1::Parameter::fullNUsers
size_t fullNUsers
Definition: implicit_als_training_init_types.h:189
daal::algorithms::implicit_als::training::init::inputOfStep2FromStep1
Definition: implicit_als_training_init_types.h:103
daal::algorithms::implicit_als::training::init::interface1::Result
Provides methods to access the results obtained with the compute() method of the implicit ALS initial...
Definition: implicit_als_training_init_types.h:530
daal::algorithms::implicit_als::training::init::outputOfStep1ForStep2
Definition: implicit_als_training_init_types.h:140
daal::algorithms::implicit_als::training::init::interface1::Parameter::nFactors
size_t nFactors
Definition: implicit_als_training_init_types.h:188
daal::algorithms::implicit_als::training::init::offsets
Definition: implicit_als_training_init_types.h:117
daal::algorithms::implicit_als::training::init::PartialResultBaseId
PartialResultBaseId
Available identifiers of partial results of the implicit ALS initialization algorithm in the first an...
Definition: implicit_als_training_init_types.h:113
daal::algorithms::implicit_als::training::init::interface1::Parameter::engine
engines::EnginePtr engine
Definition: implicit_als_training_init_types.h:191
daal::step1Local
Definition: daal_defines.h:143
daal::algorithms::implicit_als::training::init::interface1::Parameter::seed
size_t seed
Definition: implicit_als_training_init_types.h:190
daal::algorithms::implicit_als::training::init::interface1::Parameter
Parameters of the compute() method of the implicit ALS initialization algorithm.
Definition: implicit_als_training_init_types.h:178
daal::algorithms::implicit_als::training::init::PartialResultCollectionId
PartialResultCollectionId
Available identifiers of partial results of the implicit ALS initialization algorithm in the first st...
Definition: implicit_als_training_init_types.h:138
daal::algorithms::implicit_als::training::interface1::Result
Provides methods to access the results obtained with the compute() method of the implicit ALS trainin...
Definition: implicit_als_training_types.h:795
daal::algorithms::implicit_als::training::init::Method
Method
Available methods for initializing the implicit ALS algorithm.
Definition: implicit_als_training_init_types.h:80