C++ API Reference for Intel® Data Analytics Acceleration Library 2020 Update 1

logistic_regression_training_batch.h
1 /* file: logistic_regression_training_batch.h */
2 /*******************************************************************************
3 * Copyright 2014-2020 Intel Corporation
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *******************************************************************************/
17 
18 /*
19 //++
20 // Implementation of the interface for logistic regression model-based training
21 //--
22 */
23 
24 #ifndef __LOGISTIC_REGRESSION_TRAINING_BATCH_H__
25 #define __LOGISTIC_REGRESSION_TRAINING_BATCH_H__
26 
27 #include "algorithms/classifier/classifier_training_batch.h"
28 #include "algorithms/logistic_regression/logistic_regression_training_types.h"
29 
30 namespace daal
31 {
32 namespace algorithms
33 {
34 namespace logistic_regression
35 {
36 namespace training
37 {
38 namespace interface1
39 {
53 template<typename algorithmFPType, Method method, CpuType cpu>
54 class BatchContainer : public TrainingContainerIface<batch>
55 {
56 public:
62  DAAL_DEPRECATED BatchContainer(daal::services::Environment::env *daalEnv);
64  DAAL_DEPRECATED ~BatchContainer();
69  DAAL_DEPRECATED services::Status compute() DAAL_C11_OVERRIDE;
70  DAAL_DEPRECATED services::Status setupCompute() DAAL_C11_OVERRIDE;
71 };
72 
90 template<typename algorithmFPType = DAAL_ALGORITHM_FP_TYPE, Method method = defaultDense>
91 class DAAL_EXPORT Batch : public classifier::training::interface1::Batch
92 {
93 public:
94  typedef classifier::training::interface1::Batch super;
95  typedef optimization_solver::iterative_solver::interface1::BatchPtr SolverPtr;
96 
97  typedef typename super::InputType InputType;
98  typedef algorithms::logistic_regression::training::interface1::Parameter ParameterType;
99  typedef algorithms::logistic_regression::training::interface1::Result ResultType;
100 
101  InputType input;
108  DAAL_DEPRECATED Batch(size_t nClasses, const SolverPtr& solver = SolverPtr());
109 
116  DAAL_DEPRECATED Batch(const Batch<algorithmFPType, method> &other);
117 
119  DAAL_DEPRECATED ~Batch()
120  {
121  delete _par;
122  }
123 
128  DAAL_DEPRECATED ParameterType& parameter() { return *static_cast<ParameterType*>(_par); }
129 
134  DAAL_DEPRECATED const ParameterType& parameter() const { return *static_cast<const ParameterType*>(_par); }
135 
140  DAAL_DEPRECATED InputType * getInput() DAAL_C11_OVERRIDE { return &input; }
141 
146  DAAL_DEPRECATED_VIRTUAL virtual int getMethod() const DAAL_C11_OVERRIDE { return(int)method; }
147 
152  DAAL_DEPRECATED interface1::ResultPtr getResult()
153  {
154  return ResultType::cast(_result);
155  }
156 
160  DAAL_DEPRECATED services::Status resetResult() DAAL_C11_OVERRIDE
161  {
162  _result.reset(new ResultType());
163  DAAL_CHECK(_result, services::ErrorNullResult);
164  _res = NULL;
165  return services::Status();
166  }
167 
173  DAAL_DEPRECATED services::SharedPtr<Batch<algorithmFPType, method> > clone() const
174  {
175  return services::SharedPtr<Batch<algorithmFPType, method> >(cloneImpl());
176  }
177 
178 protected:
179  virtual Batch<algorithmFPType, method> * cloneImpl() const DAAL_C11_OVERRIDE
180  {
181  return new Batch<algorithmFPType, method>(*this);
182  }
183 
184  services::Status allocateResult() DAAL_C11_OVERRIDE
185  {
186  ResultPtr res = getResult();
187  DAAL_CHECK(res, services::ErrorNullResult);
188  services::Status s = res->template allocate<algorithmFPType>(&input, &parameter(), method);
189  _res = _result.get();
190  return s;
191  }
192 
193  void initialize()
194  {
195  _ac = new __DAAL_ALGORITHM_CONTAINER(batch, BatchContainer, algorithmFPType, method)(&_env);
196  _in = &input;
197  _result.reset(new ResultType());
198  }
199 };
201 } // namespace interface1
202 
203 namespace interface2
204 {
218 template<typename algorithmFPType, Method method, CpuType cpu>
219 class BatchContainer : public TrainingContainerIface<batch>
220 {
221 public:
227  BatchContainer(daal::services::Environment::env *daalEnv);
229  ~BatchContainer();
234  services::Status compute() DAAL_C11_OVERRIDE;
235  services::Status setupCompute() DAAL_C11_OVERRIDE;
236 };
237 
255 template<typename algorithmFPType = DAAL_ALGORITHM_FP_TYPE, Method method = defaultDense>
256 class DAAL_EXPORT Batch : public classifier::training::interface1::Batch
257 {
258 public:
259  typedef classifier::training::interface1::Batch super;
260  typedef optimization_solver::iterative_solver::BatchPtr SolverPtr;
261 
262  typedef typename super::InputType InputType;
263  typedef algorithms::logistic_regression::training::interface2::Parameter ParameterType;
264  typedef algorithms::logistic_regression::training::Result ResultType;
265 
266  InputType input;
273  Batch(size_t nClasses, const SolverPtr& solver = SolverPtr());
274 
281  Batch(const Batch<algorithmFPType, method> &other);
282 
284  ~Batch()
285  {
286  delete _par;
287  }
288 
293  ParameterType& parameter() { return *static_cast<ParameterType*>(_par); }
294 
299  const ParameterType& parameter() const { return *static_cast<const ParameterType*>(_par); }
300 
305  InputType * getInput() DAAL_C11_OVERRIDE { return &input; }
306 
311  virtual int getMethod() const DAAL_C11_OVERRIDE { return(int)method; }
312 
317  ResultPtr getResult()
318  {
319  return ResultType::cast(_result);
320  }
321 
325  services::Status resetResult() DAAL_C11_OVERRIDE
326  {
327  _result.reset(new ResultType());
328  DAAL_CHECK(_result, services::ErrorNullResult);
329  _res = NULL;
330  return services::Status();
331  }
332 
338  services::SharedPtr<Batch<algorithmFPType, method> > clone() const
339  {
340  return services::SharedPtr<Batch<algorithmFPType, method> >(cloneImpl());
341  }
342 
343 protected:
344  virtual Batch<algorithmFPType, method> * cloneImpl() const DAAL_C11_OVERRIDE
345  {
346  return new Batch<algorithmFPType, method>(*this);
347  }
348 
349  services::Status allocateResult() DAAL_C11_OVERRIDE
350  {
351  ResultPtr res = getResult();
352  DAAL_CHECK(res, services::ErrorNullResult);
353  services::Status s = res->template allocate<algorithmFPType>(&input, &parameter(), method);
354  _res = _result.get();
355  return s;
356  }
357 
358  void initialize()
359  {
360  _ac = new __DAAL_ALGORITHM_CONTAINER(batch, BatchContainer, algorithmFPType, method)(&_env);
361  _in = &input;
362  _result.reset(new ResultType());
363  }
364 };
366 } // namespace interface2
367 
368 namespace interface3
369 {
383 template<typename algorithmFPType, Method method, CpuType cpu>
384 class BatchContainer : public TrainingContainerIface<batch>
385 {
386 public:
392  BatchContainer(daal::services::Environment::env *daalEnv);
394  ~BatchContainer();
399  services::Status compute() DAAL_C11_OVERRIDE;
400  services::Status setupCompute() DAAL_C11_OVERRIDE;
401 };
402 
420 template<typename algorithmFPType = DAAL_ALGORITHM_FP_TYPE, Method method = defaultDense>
421 class DAAL_EXPORT Batch : public classifier::training::Batch
422 {
423 public:
424  typedef classifier::training::Batch super;
425  typedef optimization_solver::iterative_solver::BatchPtr SolverPtr;
426 
427  typedef typename super::InputType InputType;
428  typedef algorithms::logistic_regression::training::Parameter ParameterType;
429  typedef algorithms::logistic_regression::training::Result ResultType;
430 
431  InputType input;
438  Batch(size_t nClasses, const SolverPtr& solver = SolverPtr());
439 
446  Batch(const Batch<algorithmFPType, method> &other);
447 
449  ~Batch()
450  {
451  delete _par;
452  }
453 
458  ParameterType& parameter() { return *static_cast<ParameterType*>(_par); }
459 
464  const ParameterType& parameter() const { return *static_cast<const ParameterType*>(_par); }
465 
470  InputType * getInput() DAAL_C11_OVERRIDE { return &input; }
471 
476  virtual int getMethod() const DAAL_C11_OVERRIDE { return(int)method; }
477 
482  ResultPtr getResult()
483  {
484  return ResultType::cast(_result);
485  }
486 
490  services::Status resetResult() DAAL_C11_OVERRIDE
491  {
492  _result.reset(new ResultType());
493  DAAL_CHECK(_result, services::ErrorNullResult);
494  _res = NULL;
495  return services::Status();
496  }
497 
503  services::SharedPtr<Batch<algorithmFPType, method> > clone() const
504  {
505  return services::SharedPtr<Batch<algorithmFPType, method> >(cloneImpl());
506  }
507 
508 protected:
509  virtual Batch<algorithmFPType, method> * cloneImpl() const DAAL_C11_OVERRIDE
510  {
511  return new Batch<algorithmFPType, method>(*this);
512  }
513 
514  services::Status allocateResult() DAAL_C11_OVERRIDE
515  {
516  ResultPtr res = getResult();
517  DAAL_CHECK(res, services::ErrorNullResult);
518  services::Status s = res->template allocate<algorithmFPType>(&input, &parameter(), method);
519  _res = _result.get();
520  return s;
521  }
522 
523  void initialize()
524  {
525  _ac = new __DAAL_ALGORITHM_CONTAINER(batch, BatchContainer, algorithmFPType, method)(&_env);
526  _in = &input;
527  _result.reset(new ResultType());
528  }
529 };
531 } // namespace interface3
532 using interface3::BatchContainer;
533 using interface3::Batch;
534 
535 } // namespace daal::algorithms::logistic_regression::training
536 }
537 }
538 } // namespace daal
539 #endif // __LOGISTIC_REGRESSION_TRAINING_BATCH_H__
daal::algorithms::logistic_regression::training::interface2::Batch::parameter
ParameterType & parameter()
Definition: logistic_regression_training_batch.h:293
daal::algorithms::logistic_regression::training::interface1::Batch::parameter
DAAL_DEPRECATED const ParameterType & parameter() const
Definition: logistic_regression_training_batch.h:134
daal::algorithms::classifier::training::interface1::Result
Provides methods to access final results obtained with the compute() method in the batch processing m...
Definition: classifier_training_types.h:198
daal::algorithms::logistic_regression::training::interface3::BatchContainer
Provides methods to run implementations of logistic regression model-based training. This class is associated with daal::algorithms::logistic_regression::training::Batch class.
Definition: logistic_regression_training_batch.h:384
daal::algorithms::logistic_regression::training::interface2::Batch::input
InputType input
Definition: logistic_regression_training_batch.h:266
daal::algorithms::logistic_regression::training::interface2::Batch
Trains model of the logistic regression algorithms in the batch processing mode.
Definition: logistic_regression_training_batch.h:256
daal::batch
Definition: daal_defines.h:112
daal::algorithms::logistic_regression::training::interface3::Batch::clone
services::SharedPtr< Batch< algorithmFPType, method > > clone() const
Definition: logistic_regression_training_batch.h:503
daal::algorithms::logistic_regression::training::interface1::Batch
Trains model of the logistic regression algorithms in the batch processing mode.
Definition: logistic_regression_training_batch.h:91
daal::algorithms::classifier::training::interface1::Batch
Algorithm class for training the classifier model.
Definition: classifier_training_batch.h:58
daal::algorithms::logistic_regression::training::interface3::Batch
Trains model of the logistic regression algorithms in the batch processing mode.
Definition: logistic_regression_training_batch.h:421
daal::algorithms::logistic_regression::training::interface3::Batch::getResult
ResultPtr getResult()
Definition: logistic_regression_training_batch.h:482
daal::algorithms::logistic_regression::training::interface2::Batch::clone
services::SharedPtr< Batch< algorithmFPType, method > > clone() const
Definition: logistic_regression_training_batch.h:338
daal::algorithms::logistic_regression::training::interface2::BatchContainer::compute
services::Status compute() DAAL_C11_OVERRIDE
daal::algorithms::logistic_regression::training::interface1::Batch::parameter
DAAL_DEPRECATED ParameterType & parameter()
Definition: logistic_regression_training_batch.h:128
daal::algorithms::logistic_regression::training::interface2::Parameter
logistic regression algorithm parameters
Definition: logistic_regression_training_types.h:157
daal::algorithms::logistic_regression::training::interface3::Batch::~Batch
~Batch()
Definition: logistic_regression_training_batch.h:449
daal::algorithms::logistic_regression::training::interface2::BatchContainer
Provides methods to run implementations of logistic regression model-based training. This class is associated with daal::algorithms::logistic_regression::training::Batch class.
Definition: logistic_regression_training_batch.h:219
daal::algorithms::logistic_regression::training::interface1::Batch::getMethod
virtual DAAL_DEPRECATED_VIRTUAL int getMethod() const DAAL_C11_OVERRIDE
Definition: logistic_regression_training_batch.h:146
daal::services::ErrorNullResult
Definition: error_indexes.h:98
daal::algorithms::logistic_regression::training::interface3::Batch::parameter
const ParameterType & parameter() const
Definition: logistic_regression_training_batch.h:464
daal::algorithms::logistic_regression::training::interface1::BatchContainer
Provides methods to run implementations of logistic regression model-based training.
Definition: logistic_regression_training_batch.h:54
daal::algorithms::logistic_regression::training::interface1::BatchContainer::~BatchContainer
DAAL_DEPRECATED ~BatchContainer()
daal::algorithms::logistic_regression::training::interface1::Batch::resetResult
DAAL_DEPRECATED services::Status resetResult() DAAL_C11_OVERRIDE
Definition: logistic_regression_training_batch.h:160
daal::algorithms::logistic_regression::training::interface2::Batch::~Batch
~Batch()
Definition: logistic_regression_training_batch.h:284
daal::algorithms::logistic_regression::training::interface2::Batch::resetResult
services::Status resetResult() DAAL_C11_OVERRIDE
Definition: logistic_regression_training_batch.h:325
daal::algorithms::logistic_regression::training::interface1::Result
Provides methods to access the result obtained with the compute() method of model-based training...
Definition: logistic_regression_training_types.h:92
daal::algorithms::logistic_regression::training::interface2::Batch::getInput
InputType * getInput() DAAL_C11_OVERRIDE
Definition: logistic_regression_training_batch.h:305
daal::algorithms::logistic_regression::training::interface1::BatchContainer::compute
DAAL_DEPRECATED services::Status compute() DAAL_C11_OVERRIDE
daal::algorithms::logistic_regression::training::interface1::Batch::getResult
DAAL_DEPRECATED interface1::ResultPtr getResult()
Definition: logistic_regression_training_batch.h:152
daal::algorithms::classifier::interface1::Parameter
Base class for the parameters of the classification algorithm.
Definition: classifier_model.h:69
daal::algorithms::logistic_regression::training::interface3::BatchContainer::BatchContainer
BatchContainer(daal::services::Environment::env *daalEnv)
daal::algorithms::classifier::training::interface1::Input
Base class for the input objects in the training stage of the classification algorithms.
Definition: classifier_training_types.h:110
daal::algorithms::logistic_regression::training::interface3::Batch::getMethod
virtual int getMethod() const DAAL_C11_OVERRIDE
Definition: logistic_regression_training_batch.h:476
daal::algorithms::logistic_regression::training::interface3::Batch::resetResult
services::Status resetResult() DAAL_C11_OVERRIDE
Definition: logistic_regression_training_batch.h:490
daal::algorithms::logistic_regression::training::interface2::Batch::parameter
const ParameterType & parameter() const
Definition: logistic_regression_training_batch.h:299
daal::algorithms::logistic_regression::training::interface3::Batch::input
InputType input
Definition: logistic_regression_training_batch.h:431
daal::algorithms::logistic_regression::training::interface3::Batch::getInput
InputType * getInput() DAAL_C11_OVERRIDE
Definition: logistic_regression_training_batch.h:470
daal::algorithms::logistic_regression::training::interface3::Batch::parameter
ParameterType & parameter()
Definition: logistic_regression_training_batch.h:458
daal::algorithms::logistic_regression::training::interface3::BatchContainer::compute
services::Status compute() DAAL_C11_OVERRIDE
daal::algorithms::logistic_regression::training::interface2::Batch::getMethod
virtual int getMethod() const DAAL_C11_OVERRIDE
Definition: logistic_regression_training_batch.h:311
daal::algorithms::logistic_regression::training::interface1::Batch::~Batch
DAAL_DEPRECATED ~Batch()
Definition: logistic_regression_training_batch.h:119
daal::algorithms::logistic_regression::training::interface1::Batch::clone
DAAL_DEPRECATED services::SharedPtr< Batch< algorithmFPType, method > > clone() const
Definition: logistic_regression_training_batch.h:173
daal::algorithms::logistic_regression::training::interface2::Batch::getResult
ResultPtr getResult()
Definition: logistic_regression_training_batch.h:317
daal::algorithms::logistic_regression::training::interface3::BatchContainer::~BatchContainer
~BatchContainer()
daal::algorithms::logistic_regression::training::interface1::Batch::input
InputType input
Definition: logistic_regression_training_batch.h:101
daal::algorithms::TrainingContainerIface
Abstract interface class that provides virtual methods to access and run implementations of the model...
Definition: training.h:52
daal::algorithms::logistic_regression::training::interface1::BatchContainer::BatchContainer
DAAL_DEPRECATED BatchContainer(daal::services::Environment::env *daalEnv)
daal::algorithms::logistic_regression::training::interface1::Batch::getInput
DAAL_DEPRECATED InputType * getInput() DAAL_C11_OVERRIDE
Definition: logistic_regression_training_batch.h:140
daal::algorithms::logistic_regression::training::interface1::Parameter
logistic regression algorithm parameters
Definition: logistic_regression_training_types.h:70
daal::algorithms::logistic_regression::training::interface2::BatchContainer::BatchContainer
BatchContainer(daal::services::Environment::env *daalEnv)
daal::algorithms::logistic_regression::training::interface2::BatchContainer::~BatchContainer
~BatchContainer()

For more complete information about compiler optimizations, see our Optimization Notice.