fix print problem, fix Tong's email format
This commit is contained in:
parent
9739a1c806
commit
9c0389981a
@ -4,7 +4,7 @@ Title: R wrapper of xgboost
|
|||||||
Version: 0.3-0
|
Version: 0.3-0
|
||||||
Date: 2014-08-23
|
Date: 2014-08-23
|
||||||
Author: Tianqi Chen, Tong He
|
Author: Tianqi Chen, Tong He
|
||||||
Maintainer: Tong He <hetong007 at gmail.com>
|
Maintainer: Tong He <hetong007@gmail.com>
|
||||||
Description: xgboost
|
Description: xgboost
|
||||||
License: file LICENSE
|
License: file LICENSE
|
||||||
URL: https://github.com/tqchen/xgboost
|
URL: https://github.com/tqchen/xgboost
|
||||||
|
|||||||
@ -4,8 +4,8 @@ PKGROOT=../../
|
|||||||
CXX=`R CMD config CXX`
|
CXX=`R CMD config CXX`
|
||||||
TCFLAGS=`R CMD config CFLAGS`
|
TCFLAGS=`R CMD config CFLAGS`
|
||||||
# expose these flags to R CMD SHLIB
|
# expose these flags to R CMD SHLIB
|
||||||
PKG_CPPFLAGS= -DXGBOOST_CUSTOMIZE_ERROR_ -I$(PKGROOT) $(SHLIB_OPENMP_CFLAGS)
|
PKG_CPPFLAGS= -DXGBOOST_CUSTOMIZE_MSG_ -I$(PKGROOT) $(SHLIB_OPENMP_CFLAGS)
|
||||||
XGBFLAG= $(TCFLAGS) -DXGBOOST_CUSTOMIZE_ERROR_ -fPIC $(SHLIB_OPENMP_CFLAGS)
|
XGBFLAG= $(TCFLAGS) -DXGBOOST_CUSTOMIZE_MSG_ -fPIC $(SHLIB_OPENMP_CFLAGS)
|
||||||
PKG_LIBS = $(SHLIB_OPENMP_CFLAGS)
|
PKG_LIBS = $(SHLIB_OPENMP_CFLAGS)
|
||||||
|
|
||||||
ifeq ($(no_omp),1)
|
ifeq ($(no_omp),1)
|
||||||
|
|||||||
@ -4,8 +4,8 @@ PKGROOT=../../
|
|||||||
CXX=`Rcmd config CXX`
|
CXX=`Rcmd config CXX`
|
||||||
TCFLAGS=`Rcmd config CFLAGS`
|
TCFLAGS=`Rcmd config CFLAGS`
|
||||||
# expose these flags to R CMD SHLIB
|
# expose these flags to R CMD SHLIB
|
||||||
PKG_CPPFLAGS= -DXGBOOST_CUSTOMIZE_ERROR_ -I$(PKGROOT) $(SHLIB_OPENMP_CFLAGS)
|
PKG_CPPFLAGS= -DXGBOOST_CUSTOMIZE_MSG_ -I$(PKGROOT) $(SHLIB_OPENMP_CFLAGS)
|
||||||
XGBFLAG= -O3 -DXGBOOST_CUSTOMIZE_ERROR_ -fPIC $(SHLIB_OPENMP_CFLAGS)
|
XGBFLAG= -O3 -DXGBOOST_CUSTOMIZE_MSG_ -fPIC $(SHLIB_OPENMP_CFLAGS)
|
||||||
PKG_LIBS = $(SHLIB_OPENMP_CFLAGS)
|
PKG_LIBS = $(SHLIB_OPENMP_CFLAGS)
|
||||||
|
|
||||||
ifeq ($(no_omp),1)
|
ifeq ($(no_omp),1)
|
||||||
@ -29,4 +29,3 @@ $(CXXOBJ) :
|
|||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf *.so *.o *~ *.dll
|
rm -rf *.so *.o *~ *.dll
|
||||||
|
|
||||||
@ -18,6 +18,9 @@ void HandleAssertError(const char *msg) {
|
|||||||
void HandleCheckError(const char *msg) {
|
void HandleCheckError(const char *msg) {
|
||||||
error("%s", msg);
|
error("%s", msg);
|
||||||
}
|
}
|
||||||
|
void HandlePrint(const char *msg) {
|
||||||
|
Rprintf("%s", msg);
|
||||||
|
}
|
||||||
} // namespace utils
|
} // namespace utils
|
||||||
} // namespace xgboost
|
} // namespace xgboost
|
||||||
|
|
||||||
|
|||||||
@ -104,10 +104,10 @@ class DMatrixSimple : public DataMatrix {
|
|||||||
this->AddRow(feats);
|
this->AddRow(feats);
|
||||||
|
|
||||||
if (!silent) {
|
if (!silent) {
|
||||||
printf("%lux%lu matrix with %lu entries is loaded from %s\n",
|
utils::Printf("%lux%lu matrix with %lu entries is loaded from %s\n",
|
||||||
static_cast<unsigned long>(info.num_row()),
|
static_cast<unsigned long>(info.num_row()),
|
||||||
static_cast<unsigned long>(info.num_col()),
|
static_cast<unsigned long>(info.num_col()),
|
||||||
static_cast<unsigned long>(row_data_.size()), fname);
|
static_cast<unsigned long>(row_data_.size()), fname);
|
||||||
}
|
}
|
||||||
fclose(file);
|
fclose(file);
|
||||||
// try to load in additional file
|
// try to load in additional file
|
||||||
@ -156,17 +156,17 @@ class DMatrixSimple : public DataMatrix {
|
|||||||
fmat_->LoadColAccess(fs);
|
fmat_->LoadColAccess(fs);
|
||||||
|
|
||||||
if (!silent) {
|
if (!silent) {
|
||||||
printf("%lux%lu matrix with %lu entries is loaded",
|
utils::Printf("%lux%lu matrix with %lu entries is loaded",
|
||||||
static_cast<unsigned long>(info.num_row()),
|
static_cast<unsigned long>(info.num_row()),
|
||||||
static_cast<unsigned long>(info.num_col()),
|
static_cast<unsigned long>(info.num_col()),
|
||||||
static_cast<unsigned long>(row_data_.size()));
|
static_cast<unsigned long>(row_data_.size()));
|
||||||
if (fname != NULL) {
|
if (fname != NULL) {
|
||||||
printf(" from %s\n", fname);
|
utils::Printf(" from %s\n", fname);
|
||||||
} else {
|
} else {
|
||||||
printf("\n");
|
utils::Printf("\n");
|
||||||
}
|
}
|
||||||
if (info.group_ptr.size() != 0) {
|
if (info.group_ptr.size() != 0) {
|
||||||
printf("data contains %u groups\n", (unsigned)info.group_ptr.size()-1);
|
utils::Printf("data contains %u groups\n", (unsigned)info.group_ptr.size()-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -186,13 +186,13 @@ class DMatrixSimple : public DataMatrix {
|
|||||||
fs.Close();
|
fs.Close();
|
||||||
|
|
||||||
if (!silent) {
|
if (!silent) {
|
||||||
printf("%lux%lu matrix with %lu entries is saved to %s\n",
|
utils::Printf("%lux%lu matrix with %lu entries is saved to %s\n",
|
||||||
static_cast<unsigned long>(info.num_row()),
|
static_cast<unsigned long>(info.num_row()),
|
||||||
static_cast<unsigned long>(info.num_col()),
|
static_cast<unsigned long>(info.num_col()),
|
||||||
static_cast<unsigned long>(row_data_.size()), fname);
|
static_cast<unsigned long>(row_data_.size()), fname);
|
||||||
if (info.group_ptr.size() != 0) {
|
if (info.group_ptr.size() != 0) {
|
||||||
printf("data contains %u groups\n",
|
utils::Printf("data contains %u groups\n",
|
||||||
static_cast<unsigned>(info.group_ptr.size()-1));
|
static_cast<unsigned>(info.group_ptr.size()-1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -98,8 +98,8 @@ struct MetaInfo {
|
|||||||
group_ptr.push_back(group_ptr.back()+nline);
|
group_ptr.push_back(group_ptr.back()+nline);
|
||||||
}
|
}
|
||||||
if (!silent) {
|
if (!silent) {
|
||||||
printf("%u groups are loaded from %s\n",
|
utils::Printf("%u groups are loaded from %s\n",
|
||||||
static_cast<unsigned>(group_ptr.size()-1), fname);
|
static_cast<unsigned>(group_ptr.size()-1), fname);
|
||||||
}
|
}
|
||||||
fclose(fi);
|
fclose(fi);
|
||||||
return true;
|
return true;
|
||||||
@ -133,7 +133,7 @@ struct MetaInfo {
|
|||||||
weights.push_back(wt);
|
weights.push_back(wt);
|
||||||
}
|
}
|
||||||
if (!silent) {
|
if (!silent) {
|
||||||
printf("loading %s from %s\n", field, fname);
|
utils::Printf("loading %s from %s\n", field, fname);
|
||||||
}
|
}
|
||||||
fclose(fi);
|
fclose(fi);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@ -183,7 +183,7 @@ struct EvalAMS : public IEvaluator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ntop == ndata) {
|
if (ntop == ndata) {
|
||||||
fprintf(stderr, "\tams-ratio=%g", static_cast<float>(thresindex) / ndata);
|
utils::Printf("\tams-ratio=%g", static_cast<float>(thresindex) / ndata);
|
||||||
return static_cast<float>(tams);
|
return static_cast<float>(tams);
|
||||||
} else {
|
} else {
|
||||||
return static_cast<float>(sqrt(2*((s_tp+b_fp+br) * log(1.0 + s_tp/(b_fp+br)) - s_tp)));
|
return static_cast<float>(sqrt(2*((s_tp+b_fp+br) * log(1.0 + s_tp/(b_fp+br)) - s_tp)));
|
||||||
|
|||||||
@ -70,7 +70,7 @@ class BoostLearner {
|
|||||||
static_cast<unsigned long>(buffer_size));
|
static_cast<unsigned long>(buffer_size));
|
||||||
this->SetParam("num_pbuffer", str_temp);
|
this->SetParam("num_pbuffer", str_temp);
|
||||||
if (!silent) {
|
if (!silent) {
|
||||||
printf("buffer_size=%ld\n", static_cast<long>(buffer_size));
|
utils::Printf("buffer_size=%ld\n", static_cast<long>(buffer_size));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
@ -63,8 +63,8 @@ class TreePruner: public IUpdater {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (silent == 0) {
|
if (silent == 0) {
|
||||||
printf("tree prunning end, %d roots, %d extra nodes, %d pruned nodes ,max_depth=%d\n",
|
utils::Printf("tree prunning end, %d roots, %d extra nodes, %d pruned nodes ,max_depth=%d\n",
|
||||||
tree.param.num_roots, tree.num_extra_nodes(), npruned, tree.MaxDepth());
|
tree.param.num_roots, tree.num_extra_nodes(), npruned, tree.MaxDepth());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -48,9 +48,9 @@ namespace xgboost {
|
|||||||
/*! \brief namespace for helper utils of the project */
|
/*! \brief namespace for helper utils of the project */
|
||||||
namespace utils {
|
namespace utils {
|
||||||
/*! \brief error message buffer length */
|
/*! \brief error message buffer length */
|
||||||
const int kErrorBuffer = 1 << 12;
|
const int kPrintBuffer = 1 << 12;
|
||||||
|
|
||||||
#ifndef XGBOOST_CUSTOMIZE_ERROR_
|
#ifndef XGBOOST_CUSTOMIZE_MSG_
|
||||||
/*!
|
/*!
|
||||||
* \brief handling of Assert error, caused by in-apropriate input
|
* \brief handling of Assert error, caused by in-apropriate input
|
||||||
* \param msg error message
|
* \param msg error message
|
||||||
@ -67,19 +67,33 @@ inline void HandleCheckError(const char *msg) {
|
|||||||
fprintf(stderr, "%s\n", msg);
|
fprintf(stderr, "%s\n", msg);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
inline void HandlePrint(const char *msg) {
|
||||||
|
printf("%s", msg);
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
// include declarations, some one must implement this
|
// include declarations, some one must implement this
|
||||||
void HandleAssertError(const char *msg);
|
void HandleAssertError(const char *msg);
|
||||||
void HandleCheckError(const char *msg);
|
void HandleCheckError(const char *msg);
|
||||||
|
void HandlePrint(const char *msg);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*! \brief printf, print message to the console */
|
||||||
|
inline void Printf(const char *fmt, ...) {
|
||||||
|
std::string msg(kPrintBuffer, '\0');
|
||||||
|
va_list args;
|
||||||
|
va_start(args, fmt);
|
||||||
|
vsnprintf(&msg[0], kPrintBuffer, fmt, args);
|
||||||
|
va_end(args);
|
||||||
|
HandlePrint(msg.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
/*! \brief assert an condition is true, use this to handle debug information */
|
/*! \brief assert an condition is true, use this to handle debug information */
|
||||||
inline void Assert(bool exp, const char *fmt, ...) {
|
inline void Assert(bool exp, const char *fmt, ...) {
|
||||||
if (!exp) {
|
if (!exp) {
|
||||||
std::string msg(kErrorBuffer, '\0');
|
std::string msg(kPrintBuffer, '\0');
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
vsnprintf(&msg[0], kErrorBuffer, fmt, args);
|
vsnprintf(&msg[0], kPrintBuffer, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
HandleAssertError(msg.c_str());
|
HandleAssertError(msg.c_str());
|
||||||
}
|
}
|
||||||
@ -88,10 +102,10 @@ inline void Assert(bool exp, const char *fmt, ...) {
|
|||||||
/*!\brief same as assert, but this is intended to be used as message for user*/
|
/*!\brief same as assert, but this is intended to be used as message for user*/
|
||||||
inline void Check(bool exp, const char *fmt, ...) {
|
inline void Check(bool exp, const char *fmt, ...) {
|
||||||
if (!exp) {
|
if (!exp) {
|
||||||
std::string msg(kErrorBuffer, '\0');
|
std::string msg(kPrintBuffer, '\0');
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
vsnprintf(&msg[0], kErrorBuffer, fmt, args);
|
vsnprintf(&msg[0], kPrintBuffer, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
HandleCheckError(msg.c_str());
|
HandleCheckError(msg.c_str());
|
||||||
}
|
}
|
||||||
@ -100,10 +114,10 @@ inline void Check(bool exp, const char *fmt, ...) {
|
|||||||
/*! \brief report error message, same as check */
|
/*! \brief report error message, same as check */
|
||||||
inline void Error(const char *fmt, ...) {
|
inline void Error(const char *fmt, ...) {
|
||||||
{
|
{
|
||||||
std::string msg(kErrorBuffer, '\0');
|
std::string msg(kPrintBuffer, '\0');
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
vsnprintf(&msg[0], kErrorBuffer, fmt, args);
|
vsnprintf(&msg[0], kPrintBuffer, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
HandleCheckError(msg.c_str());
|
HandleCheckError(msg.c_str());
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user