5 #ifndef XGBOOST_COMMON_OBSERVER_H_ 6 #define XGBOOST_COMMON_OBSERVER_H_ 19 #if defined(XGBOOST_STRICT_R_MODE) && XGBOOST_STRICT_R_MODE == 1 20 #define OBSERVER_PRINT LOG(INFO) 21 #define OBSERVER_ENDL "" 22 #define OBSERVER_NEWLINE "" 23 #else // defined(XGBOOST_STRICT_R_MODE) && XGBOOST_STRICT_R_MODE == 1 24 #define OBSERVER_PRINT std::cout << std::setprecision(17) 25 #define OBSERVER_ENDL std::endl 26 #define OBSERVER_NEWLINE "\n" 27 #endif // defined(XGBOOST_STRICT_R_MODE) && XGBOOST_STRICT_R_MODE == 1 38 #if defined(XGBOOST_USE_DEBUG_OUTPUT) 39 bool constexpr
static kObserve {
true};
41 bool constexpr
static kObserve {
false};
42 #endif // defined(XGBOOST_USE_DEBUG_OUTPUT) 62 auto const& tree = *p_tree;
67 void Observe(std::vector<T>
const& h_vec, std::string name,
68 size_t n = std::numeric_limits<std::size_t>::max())
const {
72 for (
size_t i = 0; i < h_vec.size(); ++i) {
86 size_t n = std::numeric_limits<std::size_t>::max())
const {
93 size_t n = std::numeric_limits<std::size_t>::max())
const {
99 template <
typename Parameter,
100 typename std::enable_if<
101 std::is_base_of<XGBoostParameter<Parameter>, Parameter>::value>::type* =
nullptr>
102 void Observe(
const Parameter &p, std::string name)
const {
105 Json obj {toJson(p)};
112 for (
auto kv : args) {
125 #endif // XGBOOST_COMMON_OBSERVER_H_ void Observe(std::vector< T > const &h_vec, std::string name, size_t n=std::numeric_limits< std::size_t >::max()) const
Definition: observer.h:67
void Observe(RegTree const *p_tree)
Definition: observer.h:60
#define OBSERVER_PRINT
Definition: observer.h:24
Definition: host_device_vector.h:86
std::vector< std::pair< std::string, std::string > > Args
Definition: base.h:253
void Update(int32_t iter) const
Definition: observer.h:45
A device-and-host vector abstraction layer.
static TrainingObserver & Instance()
Definition: observer.h:119
define regression tree to be the most common tree model. This is the data structure used in xgboost's...
Definition: tree_model.h:106
static void Dump(Json json, std::string *out)
void Observe(HostDeviceVector< T > *vec, std::string name, size_t n=std::numeric_limits< std::size_t >::max()) const
Definition: observer.h:92
void Observe(Args const &args) const
Definition: observer.h:109
std::vector< T > & HostVector()
void Observe(RegTree const &tree)
Definition: observer.h:50
namespace of xgboost
Definition: base.h:102
void Observe(HostDeviceVector< T > const &vec, std::string name, size_t n=std::numeric_limits< std::size_t >::max()) const
Definition: observer.h:85
defines configuration macros of xgboost.
JsonObject Object
Definition: json.h:532
void SaveModel(Json *out) const override
saves the model config to a json object
Definition: observer.h:37
#define OBSERVER_ENDL
Definition: observer.h:25
void Observe(const Parameter &p, std::string name) const
Definition: observer.h:102
Data structure representing JSON format.
Definition: json.h:326
#define XGBOOST_EXPECT(cond, ret)
Definition: base.h:75
macro for using C++11 enum class as DMLC parameter
#define OBSERVER_NEWLINE
Definition: observer.h:26