Turi Create  4.0
image_deep_feature_extractor_toolkit.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 IMAGE_DEEP_FEATURE_EXTRACTOR_TOOLKIT_HPP
7 #define IMAGE_DEEP_FEATURE_EXTRACTOR_TOOLKIT_HPP
8 
9 #include <memory>
10 
11 #include <toolkits/image_deep_feature_extractor/image_feature_extractor.hpp>
12 #include <core/data/sframe/gl_sframe.hpp>
13 #include <model_server/lib/extensions/ml_model.hpp>
14 #include <model_server/lib/toolkit_class_macros.hpp>
15 
16 
17 namespace turi {
18 namespace image_deep_feature_extractor {
19 
20 
21 class EXPORT image_deep_feature_extractor_toolkit : public ml_model_base {
22 public:
23 
24  image_deep_feature_extractor_toolkit() { };
25 
26  void init_options(const std::map<std::string, flexible_type>& options) override;
27 
28  gl_sarray extract_features(gl_sframe data, const std::string& column_name, bool verbose, size_t batch_size) const;
29  gl_sarray sarray_extract_features(gl_sarray data, bool verbose, size_t batch_size) const;
30 
31  inline size_t get_version() const override { return -1; }
32 
33  void save_impl(turi::oarchive& oarc) const override {
34  log_and_throw("Model serialization is not support for this model");
35  }
36 
37  void load_version(turi::iarchive& iarc, size_t version) override {
38  log_and_throw("Model serialization is not support for this model");
39  }
40 
41  BEGIN_CLASS_MEMBER_REGISTRATION("image_deep_feature_extractor")
42 
43  REGISTER_CLASS_MEMBER_FUNCTION(image_deep_feature_extractor_toolkit::init_options, "options");
44 
45  REGISTER_CLASS_MEMBER_FUNCTION(image_deep_feature_extractor_toolkit::extract_features, "data", "column_name", "verbose", "batch_size");
46  REGISTER_CLASS_MEMBER_FUNCTION(image_deep_feature_extractor_toolkit::sarray_extract_features, "data", "verbose", "batch_size");
47 
49 
50 private:
51  std::unique_ptr<image_feature_extractor> m_feature_extractor;
52 
53 };
54 
55 
56 } // image_deep_feature_extractor
57 } // turi
58 
59 #endif // IMAGE_DEEP_FEATURE_EXTRACTOR_TOOLKIT_HPP
#define BEGIN_CLASS_MEMBER_REGISTRATION(python_facing_classname)
#define REGISTER_CLASS_MEMBER_FUNCTION(function,...)
The serialization input archive object which, provided with a reference to an istream, will read from the istream, providing deserialization capabilities.
Definition: iarchive.hpp:60
STL namespace.
#define END_CLASS_MEMBER_REGISTRATION
The serialization output archive object which, provided with a reference to an ostream, will write to the ostream, providing serialization capabilities.
Definition: oarchive.hpp:80