24 #ifndef __IMPLICIT_ALS_TRAINING_INIT_TYPES_H__
25 #define __IMPLICIT_ALS_TRAINING_INIT_TYPES_H__
27 #include "algorithms/implicit_als/implicit_als_model.h"
28 #include "algorithms/implicit_als/implicit_als_training_types.h"
29 #include "data_management/data/csr_numeric_table.h"
30 #include "algorithms/engines/mt19937/mt19937.h"
36 namespace implicit_als
77 enum Step2LocalInputId
79 inputOfStep2FromStep1,
81 lastStep2LocalInputId = inputOfStep2FromStep1
89 enum PartialResultBaseId
91 outputOfInitForComputeStep3,
95 lastPartialResultBaseId = offsets
105 partialModel = lastPartialResultBaseId + 1,
106 lastPartialResultId = partialModel
114 enum PartialResultCollectionId
116 outputOfStep1ForStep2 = lastPartialResultId + 1,
118 lastPartialResultCollectionId = outputOfStep1ForStep2
126 enum DistributedPartialResultStep2Id
128 transposedData = lastPartialResultBaseId + 1,
129 lastDistributedPartialResultStep2Id = transposedData
154 struct DAAL_EXPORT Parameter :
public daal::algorithms::Parameter
162 Parameter(
size_t nFactors = 10,
size_t fullNUsers = 0,
size_t seed = 777777);
167 engines::EnginePtr engine;
169 services::Status check() const DAAL_C11_OVERRIDE;
180 struct DAAL_EXPORT DistributedParameter : public Parameter
188 DistributedParameter(
size_t nFactors = 10,
size_t fullNUsers = 0,
size_t seed = 777777);
190 data_management::NumericTablePtr partition;
196 services::Status check() const DAAL_C11_OVERRIDE;
204 class DAAL_EXPORT Input : public daal::algorithms::Input
207 Input(
size_t nElements = lastInputId + 1);
208 Input(
const Input& other) : daal::algorithms::Input(other){}
217 data_management::NumericTablePtr
get(InputId id)
const;
224 void set(InputId
id,
const data_management::NumericTablePtr &ptr);
230 size_t getNumberOfItems()
const;
237 services::Status check(
const daal::algorithms::Parameter *parameter,
int method)
const DAAL_C11_OVERRIDE;
244 template<ComputeStep step>
245 class DistributedInput
254 class DAAL_EXPORT DistributedInput<step1Local> :
public Input
261 DistributedInput(
const DistributedInput& other) : Input(other){}
263 virtual ~DistributedInput() {}
275 class DAAL_EXPORT DistributedInput<step2Local> :
public daal::algorithms::Input
282 DistributedInput(
const DistributedInput& other) : daal::algorithms::Input(other){}
284 virtual ~DistributedInput() {}
291 data_management::KeyValueDataCollectionPtr
get(Step2LocalInputId id)
const;
298 void set(Step2LocalInputId
id,
const data_management::KeyValueDataCollectionPtr &ptr);
305 services::Status check(
const daal::algorithms::Parameter *parameter,
int method)
const DAAL_C11_OVERRIDE;
313 class DAAL_EXPORT PartialResultBase :
public daal::algorithms::PartialResult
316 DECLARE_SERIALIZABLE_CAST(PartialResultBase);
323 PartialResultBase(
size_t nElements = 0);
330 data_management::KeyValueDataCollectionPtr
get(PartialResultBaseId id)
const;
338 data_management::NumericTablePtr
get(PartialResultBaseId id,
size_t key)
const;
345 void set(PartialResultBaseId
id,
const data_management::KeyValueDataCollectionPtr &ptr);
353 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
int method)
const DAAL_C11_OVERRIDE;
356 template <
typename algorithmFPType>
357 DAAL_EXPORT services::Status allocate(
size_t nParts);
360 template<
typename Archive,
bool onDeserialize>
361 services::Status serialImpl(Archive *arch)
363 return daal::algorithms::PartialResult::serialImpl<Archive, onDeserialize>(arch);
366 services::Status checkImpl(
size_t nParts)
const;
374 class DAAL_EXPORT PartialResult :
public PartialResultBase
377 DECLARE_SERIALIZABLE_CAST(PartialResult);
381 using PartialResultBase::get;
382 using PartialResultBase::set;
390 template <
typename algorithmFPType>
391 DAAL_EXPORT services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
const int method);
398 PartialModelPtr
get(PartialResultId id)
const;
405 void set(PartialResultId
id,
const PartialModelPtr &ptr);
412 data_management::KeyValueDataCollectionPtr
get(PartialResultCollectionId id)
const;
420 data_management::NumericTablePtr
get(PartialResultCollectionId id,
size_t key)
const;
427 void set(PartialResultCollectionId
id,
const data_management::KeyValueDataCollectionPtr &ptr);
435 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
int method)
const DAAL_C11_OVERRIDE;
439 template<
typename Archive,
bool onDeserialize>
440 services::Status serialImpl(Archive *arch)
442 return daal::algorithms::PartialResult::serialImpl<Archive, onDeserialize>(arch);
451 class DAAL_EXPORT DistributedPartialResultStep2 :
public PartialResultBase
454 DECLARE_SERIALIZABLE_CAST(DistributedPartialResultStep2);
456 DistributedPartialResultStep2();
458 using PartialResultBase::get;
459 using PartialResultBase::set;
467 template <
typename algorithmFPType>
468 DAAL_EXPORT services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
const int method);
475 data_management::NumericTablePtr
get(DistributedPartialResultStep2Id id)
const;
482 void set(DistributedPartialResultStep2Id
id,
const data_management::NumericTablePtr &ptr);
490 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
int method)
const DAAL_C11_OVERRIDE;
494 template<
typename Archive,
bool onDeserialize>
495 services::Status serialImpl(Archive *arch)
497 return daal::algorithms::PartialResult::serialImpl<Archive, onDeserialize>(arch);
506 class DAAL_EXPORT Result :
public daal::algorithms::implicit_als::training::Result
509 DECLARE_SERIALIZABLE_CAST(Result);
516 daal::algorithms::implicit_als::ModelPtr
get(ResultId id)
const;
523 void set(ResultId
id,
const daal::algorithms::implicit_als::ModelPtr &ptr);
527 template<
typename Archive,
bool onDeserialize>
528 services::Status serialImpl(Archive *arch)
530 return training::Result::serialImpl<Archive, onDeserialize>(arch);
533 typedef services::SharedPtr<Result> ResultPtr;
534 typedef services::SharedPtr<PartialResult> PartialResultPtr;
535 typedef services::SharedPtr<DistributedPartialResultStep2> DistributedPartialResultStep2Ptr;
538 using interface1::Parameter;
539 using interface1::DistributedParameter;
540 using interface1::Input;
541 using interface1::DistributedInput;
542 using interface1::PartialResultBase;
543 using interface1::PartialResult;
544 using interface1::PartialResultPtr;
545 using interface1::DistributedPartialResultStep2;
546 using interface1::DistributedPartialResultStep2Ptr;
547 using interface1::Result;
548 using interface1::ResultPtr;
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:154
daal::step1Local
Definition: daal_defines.h:123
daal::algorithms::implicit_als::training::init::Step2LocalInputId
Step2LocalInputId
Definition: implicit_als_training_init_types.h:77
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:313
daal::algorithms::implicit_als::training::init::interface1::Parameter::seed
size_t seed
Definition: implicit_als_training_init_types.h:166
daal::algorithms::implicit_als::training::init::inputOfStep2FromStep1
Definition: implicit_als_training_init_types.h:79
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:114
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:103
daal::algorithms::implicit_als::training::init::fastCSR
Definition: implicit_als_training_init_types.h:59
daal::algorithms::implicit_als::training::init::interface1::DistributedInput< step2Local >::DistributedInput
DistributedInput(const DistributedInput &other)
Definition: implicit_als_training_init_types.h:282
daal::algorithms::implicit_als::training::init::interface1::DistributedInput< step1Local >::DistributedInput
DistributedInput(const DistributedInput &other)
Definition: implicit_als_training_init_types.h:261
daal::algorithms::implicit_als::training::init::outputOfInitForComputeStep3
Definition: implicit_als_training_init_types.h:91
daal::algorithms::implicit_als::training::init::interface1::DistributedInput
Input objects for the implicit ALS initialization algorithm in the distributed processing mode ...
Definition: implicit_als_training_init_types.h:245
daal::algorithms::implicit_als::training::init::interface1::DistributedParameter::partition
data_management::NumericTablePtr partition
Definition: implicit_als_training_init_types.h:190
daal::algorithms::implicit_als::training::init::interface1::Input::get
data_management::NumericTablePtr get(InputId id) const
daal::algorithms::implicit_als::training::init::data
Definition: implicit_als_training_init_types.h:68
daal::algorithms::implicit_als::training::init::outputOfStep1ForStep2
Definition: implicit_als_training_init_types.h:116
daal::algorithms::implicit_als::training::init::interface1::Parameter::fullNUsers
size_t fullNUsers
Definition: implicit_als_training_init_types.h:165
daal::algorithms::implicit_als::training::init::interface1::PartialResultBase::set
void set(PartialResultBaseId id, const data_management::KeyValueDataCollectionPtr &ptr)
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:89
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:374
daal::algorithms::implicit_als::training::init::partialModel
Definition: implicit_als_training_init_types.h:105
daal::algorithms::implicit_als::training::init::interface1::Parameter::engine
engines::EnginePtr engine
Definition: implicit_als_training_init_types.h:167
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:451
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:136
daal::algorithms::implicit_als::training::init::Method
Method
Available methods for initializing the implicit ALS algorithm.
Definition: implicit_als_training_init_types.h:56
daal::algorithms::implicit_als::training::init::interface1::PartialResultBase::get
data_management::KeyValueDataCollectionPtr get(PartialResultBaseId id) const
daal::algorithms::implicit_als::training::init::offsets
Definition: implicit_als_training_init_types.h:93
daal::algorithms::implicit_als::training::init::interface1::Input::set
void set(InputId id, const data_management::NumericTablePtr &ptr)
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:506
daal::algorithms::implicit_als::training::init::interface1::Parameter::nFactors
size_t nFactors
Definition: implicit_als_training_init_types.h:164
daal::algorithms::implicit_als::training::init::transposedData
Definition: implicit_als_training_init_types.h:128
daal::algorithms::implicit_als::training::init::defaultDense
Definition: implicit_als_training_init_types.h:58
daal::algorithms::implicit_als::training::init::interface1::Input
Input objects for the implicit ALS initialization algorithm
Definition: implicit_als_training_init_types.h:204
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:180
daal::algorithms::implicit_als::training::init::DistributedPartialResultStep2Id
DistributedPartialResultStep2Id
Definition: implicit_als_training_init_types.h:126
daal::algorithms::implicit_als::training::init::model
Definition: implicit_als_training_init_types.h:138
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:66
daal::step2Local
Definition: daal_defines.h:128