Turi Create  4.0
linear_models_exporter.hpp
1 /* Copyright © 2017 Apple Inc. All rights reserved.
2  *
3  * Use of this source code is governed by a BSD-3-clause license that can
4  * be found in the LICENSE.txt file or at https://opensource.org/licenses/BSD-3-Clause
5  */
6 #ifndef COREML_LINEAR_MODELS_EXPORTER
7 #define COREML_LINEAR_MODELS_EXPORTER
8 
9 #include <map>
10 #include <memory>
11 #include <string>
12 
13 #include <ml/ml_data/metadata.hpp>
14 #include <Eigen/Core>
15 #include <toolkits/coreml_export/mlmodel_wrapper.hpp>
16 
17 namespace turi {
18 
19 /**
20  * Export as model asset
21  */
22 std::shared_ptr<coreml::MLModelWrapper> export_linear_regression_as_model_asset(
23  const std::shared_ptr<ml_metadata>& metadata,
24  const Eigen::Matrix<double, Eigen::Dynamic,1>& coefs,
25  const std::map<std::string, flexible_type>& context);
26 
27 /**
28  * Export linear SVM as model asset.
29  */
30 std::shared_ptr<coreml::MLModelWrapper> export_linear_svm_as_model_asset(
31  const std::shared_ptr<ml_metadata>& metadata,
32  const Eigen::Matrix<double, Eigen::Dynamic,1>& coefs,
33  const std::map<std::string, flexible_type>& context);
34 
35 
36 /**
37  * Export logistic regression as model asset.
38  */
39 std::shared_ptr<coreml::MLModelWrapper> export_logistic_model_as_model_asset(
40  const std::shared_ptr<ml_metadata>& metadata,
41  const Eigen::Matrix<double, Eigen::Dynamic,1>& coefs,
42  const std::map<std::string, flexible_type>& context);
43 
44 /**
45  * Simplified versions of the above, with exported symbol visibility so that
46  * extensions can link to them.
47  */
48 
50  const std::string& filename,
51  const std::shared_ptr<ml_metadata>& metadata,
52  const Eigen::Matrix<double, Eigen::Dynamic,1>& coefs,
53  const std::map<std::string, flexible_type>& context);
54 
55 void EXPORT export_linear_svm_as_model_asset(const std::string& filename,
56  const std::shared_ptr<ml_metadata>& metadata,
57  const Eigen::Matrix<double, Eigen::Dynamic,1>& coefs,
58  const std::map<std::string, flexible_type>& context);
59 
61  const std::string& filename,
62  const std::shared_ptr<ml_metadata>& metadata,
63  const Eigen::Matrix<double, Eigen::Dynamic,1>& coefs,
64  const std::map<std::string, flexible_type>& context);
65 
66 }
67 
68 #endif
std::shared_ptr< coreml::MLModelWrapper > export_logistic_model_as_model_asset(const std::shared_ptr< ml_metadata > &metadata, const Eigen::Matrix< double, Eigen::Dynamic, 1 > &coefs, const std::map< std::string, flexible_type > &context)
std::shared_ptr< coreml::MLModelWrapper > export_linear_regression_as_model_asset(const std::shared_ptr< ml_metadata > &metadata, const Eigen::Matrix< double, Eigen::Dynamic, 1 > &coefs, const std::map< std::string, flexible_type > &context)
std::shared_ptr< coreml::MLModelWrapper > export_linear_svm_as_model_asset(const std::shared_ptr< ml_metadata > &metadata, const Eigen::Matrix< double, Eigen::Dynamic, 1 > &coefs, const std::map< std::string, flexible_type > &context)