Xgboost: 1.0.0生产的模型不能加载到0.90

创建于 2020-02-22  ·  74评论  ·  资料来源: dmlc/xgboost

按照此处的说明操作: https ://xgboost.readthedocs.io/en/latest/R-package/xgboostPresentation.html

> install.packages("drat", repos="https://cran.rstudio.com")
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.6/drat_0.1.5.zip'
Content type 'application/zip' length 87572 bytes (85 KB)
downloaded 85 KB

package ‘drat’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
        C:\Users\lee\AppData\Local\Temp\RtmpiE0N3D\downloaded_packages
> drat:::addRepo("dmlc")
> install.packages("xgboost", repos="http://dmlc.ml/drat/", type = "source")
Warning: unable to access index for repository http://dmlc.ml/drat/src/contrib:
  Line starting '<!DOCTYPE html> ...' is malformed!
Warning message:
package ‘xgboost’ is not available (for R version 3.6.0) 

它在 R 3.6.2 上也失败并出现同样的错误。

注意:我更喜欢使用 CRAN 版本。 但是我在 linux 和 Mac 上训练并使用 saveRDS 函数保存的模型不会在另一个系统(Windows)上预测,它们只会产生数字(0)。 如果有人对如何保存 XGBoost 模型以供其他计算机使用有任何指导,请告诉我。 我试过 xgb.save.raw 和 xgb.load - 两者都产生 numeric(0) 。 但是在我(一个月前)训练模型的计算机上,R 中的 readRDS 工作得很好。 绝对让我莫名其妙。

最有用的评论

我已经成功地在 linux 上重现了这个问题 - 请参阅随附的屏幕截图。

我正在将虚拟框上传到保管箱。 但如果您希望从头开始安装,复制说明如下:

  1. 下载并安装virtualbox
  2. 下载 ubuntu 仿生海狸的构建(我使用的是 ubuntu-18.04.3-desktop-amd64)。
  3. 请按照此处的说明进行操作: https: //medium.com/@mannycodes/installing -ubuntu-18-04-on-mac-os-with-virtualbox-ac3b39678602。 我使用了一个固定的 15 GB 虚拟驱动器
  4. 通过以下方式为 R 3.6.2 配置:
sudo apt-get update
sudo apt-get install vim
sudo vim /etc/apt/sources.list
i
deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/
<esc> :wq
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
gpg -a --export E298A3A825C0D65DFD57CBB651716619E084DAB9 | sudo apt-key add -
sudo apt-get update
sudo apt-get install r-base-dev
  1. 在 R 中安装包

install.packages(c("caret", "xgboost"))

  1. 在 R 中加载包
library(caret)
library(xgboost)
  1. 加载数据
modelList <- readRDS("~/Desktop/modelList.rdata")
attach(modelList)
  1. 尝试预测
predict(object=xgbModel, newdata=as.matrix(caretModel$trainingData[,!colnames(caretModel$trainingData) %in% ".outcome"]))

这又回到了现在熟悉的:

[13:00:55] 警告:amalgamation/../src/objective/regression_obj.cu:152:现在不推荐使用reg:linear来支持reg:squarederror。
数字(0)

Screen Shot 2020-02-23 at 12 33 13 PM

注意:我尝试了显式调用库,只是尝试了预测。 两者都导致相同的数字(0)响应。

所有74条评论

你试过 install.packages('xgboost') 吗?

你试过 install.packages('xgboost') 吗?

这工作得很好,但是来自保存模型的所有预测(使用 saveRDS)都会产生数字(0)。 使用 openMP 训练的模型似乎无法在没有该框架的计算机上运行。 我希望从源代码编译可以解决这个问题。

这是从源代码编译 XGBoost 的方式:

mkdir build
cd build
cmake .. -G"Visual Studio 14 2015 Win64" -DR_LIB=ON
cmake --build . --target install --config Release

您能否分享模型文件,以便我们可以尝试找出您预测为 0 的原因?

谢谢 - 你想要 R 对象还是更喜欢通过 xgb.save.raw 转换它?

两个都

感谢您的帮助和支持(以及制作如此非凡的学习计划)。

附件是一个压缩的 .rdata 文件。 在 3 个系统(Mac、MacBook、Ubuntu)上,我可以运行以下代码:

modelList <- readRDS("<path_to_folder>/modelList.rdata")
attach(modelList)
predictions_caret <- predict(object=caretModel, newdata=caretModel$trainingData[,!colnames(caretModel$trainingData) %in% ".outcome"])
predictions_xgbbase <- predict(object=xgbModel, newdata=as.matrix(caretModel$trainingData[,!colnames(caretModel$trainingData) %in% ".outcome"]))

并得到以下输出:

> predictions_caret <- predict(object=caretModel, newdata=caretModel$trainingData[,!colnames(caretModel$trainingData) %in% ".outcome"])
[23:12:50] WARNING: ../..//amalgamation/../src/objective/regression_obj.cu:167: reg:linear is now deprecated in favor of reg:squarederror.
> head(predictions_caret)
[1] 14.0180358887 13.0352602005 12.9208145142 13.2430124283 13.6698570251
[6] 12.9033651352

> predictions_xgbbase <- predict(object=xgbModel, newdata=as.matrix(caretModel$trainingData[,!colnames(caretModel$trainingData) %in% ".outcome"]))
[23:16:17] WARNING: ../..//amalgamation/../src/objective/regression_obj.cu:167: reg:linear is now deprecated in favor of reg:squarederror.
> head(predictions_xgbbase)
[1] 14.0180358887 13.0352602005 12.9208145142 13.2430124283 13.6698570251
[6] 12.9033651352

在系统 4(从 CRAN 安装了 xgboost 的 windows base R)上,我得到了非常不同的结果:

> predictions_caret <- predict(object=caretModel, newdata=caretModel$trainingData[,!colnames(caretModel$trainingData) %in% ".outcome"])
[23:18:04] WARNING: amalgamation/../src/objective/regression_obj.cu:152: reg:linear is now deprecated in favor of reg:squarederror.
> head(predictions_caret)
numeric(0)

> predictions_xgbbase <- predict(object=xgbModel, newdata=as.matrix(caretModel$trainingData[,!colnames(caretModel$trainingData) %in% ".outcome"]))
[23:18:41] WARNING: amalgamation/../src/objective/regression_obj.cu:152: reg:linear is now deprecated in favor of reg:squarederror.
> head(predictions_xgbbase)
numeric(0)

我怀疑这可能需要打开一个新问题,但我感谢您提供的任何指导,说明为什么相同的代码在不同的系统上会有不同的行为。

最后,包含 xgbRaw(如果使用 attach(),应该可以调用),它是使用以下代码生成的:

xgbRaw=xgb.save.raw(xgb.Booster.complete(caretModel$finalModel))

再一次感谢你。

模型列表.rdata.zip

可能是因为我们的 dmlc 防范 omp 异常?

@leedrake5你的机器不支持 OpenMP 吗?

@hcho3你找到原因了吗? 我刚刚在没有 OpenMP 的情况下编译了 XGBoost(对 CMakeLists 有一些补丁),外部内存测试按预期失败,hist 并行组测试也失败(我在本地分支中修复了)。 但到目前为止,我可以获得完美的预测值。

@hcho3我的机器支持openmp。 但是我们正在以工业规模部署这些模型,并且特定站点的许多计算机都没有 openmp。 我们在 6 个月的准备和 1 周后才发现这一点,直到实施,所以我们正在努力弄清楚为什么这些模型在某些计算机上工作而不是在其他计算机上工作。

如果有一些关于为什么模型应该只在其构造环境中工作的哲学,是否有某种方法可以获得关于为什么的信息错误?

@leedrake5这是一个错误。 我一直试图在禁用 openmp 的 Ubuntu 上重现它,但到目前为止还没有运气。

@trivialfs如果有帮助,我和我的大多数同事都会遇到 Windows 上的错误。 尽管我的一位同事能够在没有 openmp 的情况下在 ubuntu 上复制它。

我怀疑没有花哨的东西(openmp、intelmkl、openblas 等)的 R 的最小安装可能会重现它,但我仍在思考系统的哪个部分导致问题。

@leedrake5如果有办法在 Linux 发行版上重现它,那将有很大帮助!

我禁用了所有选项,包括 google test、omp ...但仍然有正确的结果加载您的模型。 R 的安装是来自apt的默认发行版,我认为它与 XGBoost 预测没有任何关系。

它可能不是由 OpenMP 引起的。 即使预测真的出错了,仍然存在全局偏差,而不是 0。

我能想到的唯一原因是 XGBoost 实际上没有被安装。 我认为我们在 CRAN 上运行测试对吗? @hcho3

我尝试了 CMake 构建和 autotools 构建。 这是install.packages(...) (autotools build) 报告的我的编译标志:

g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -I../..//include -I../..//dmlc-core/include -I../..//rabit/include -I../../ -DXGBOOST_STRICT_R_MODE=1 -DDMLC_LOG_BEFORE_THROW=0 -DDMLC_ENABLE_STD_THREAD=1 -DDMLC_DISABLE_STDIN=1 -DDMLC_LOG_CUSTOMIZE=1 -DXGBOOST_CUSTOMIZE_LOGGER=1 -DRABIT_CUSTOMIZE_MSG_ -DRABIT_STRICT_CXX98_    -DDMLC_CMAKE_LITTLE_ENDIAN=1 -pthread -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-el7SHG/r-base-3.5.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c ../..//amalgamation/xgboost-all0.cc -o ../..//amalgamation/xgboost-all0.o

@trivialfis更加好奇,因为 XGBoost 从 CRAN 成功安装,并且 library(xgboost) 可以正常工作。

尽管我的一位同事能够在没有 openmp 的情况下在 ubuntu 上复制它。

是否有可能他/她可以分享如何繁殖?

尽管我的一位同事能够在没有 openmp 的情况下在 ubuntu 上复制它。

是否有可能他/她可以分享如何繁殖?

不确定他们是否足够了解 linux 系统的工作原理 - 但如果您知道他们可以提供的任何诊断,请告诉我。

就我而言,我正在尝试创建一个可以复制问题的虚拟盒子 ubuntu 安装 - 如果成功,我将发送一个下载链接。

我已经成功地在 linux 上重现了这个问题 - 请参阅随附的屏幕截图。

我正在将虚拟框上传到保管箱。 但如果您希望从头开始安装,复制说明如下:

  1. 下载并安装virtualbox
  2. 下载 ubuntu 仿生海狸的构建(我使用的是 ubuntu-18.04.3-desktop-amd64)。
  3. 请按照此处的说明进行操作: https: //medium.com/@mannycodes/installing -ubuntu-18-04-on-mac-os-with-virtualbox-ac3b39678602。 我使用了一个固定的 15 GB 虚拟驱动器
  4. 通过以下方式为 R 3.6.2 配置:
sudo apt-get update
sudo apt-get install vim
sudo vim /etc/apt/sources.list
i
deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/
<esc> :wq
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
gpg -a --export E298A3A825C0D65DFD57CBB651716619E084DAB9 | sudo apt-key add -
sudo apt-get update
sudo apt-get install r-base-dev
  1. 在 R 中安装包

install.packages(c("caret", "xgboost"))

  1. 在 R 中加载包
library(caret)
library(xgboost)
  1. 加载数据
modelList <- readRDS("~/Desktop/modelList.rdata")
attach(modelList)
  1. 尝试预测
predict(object=xgbModel, newdata=as.matrix(caretModel$trainingData[,!colnames(caretModel$trainingData) %in% ".outcome"]))

这又回到了现在熟悉的:

[13:00:55] 警告:amalgamation/../src/objective/regression_obj.cu:152:现在不推荐使用reg:linear来支持reg:squarederror。
数字(0)

Screen Shot 2020-02-23 at 12 33 13 PM

注意:我尝试了显式调用库,只是尝试了预测。 两者都导致相同的数字(0)响应。

7z 压缩虚拟实例的链接在这里: https ://www.dropbox.com/s/ld06zz798m0segf/UbuntuDebug.7z?dl=0

让我先弄个虚拟盒子。 我通常使用KVM。

现在看着这个。

@leedrake5我设法在您提供的虚拟机上重现了该问题。 saveRDSxgb.save.raw似乎存在问题。 您是否尝试使用xgb.savexgb.load代替? 这组函数使用 XGBoost 模型的“本机”格式,并且不保存特定于 R 环境的属性。 如果您想将模型从 R 包转移到 Python,这很有用。

保存原始文件应该不是问题。 问题可能在于 R 如何序列化 R 代码。 我们添加了一个新的可选参数来预测,这可能会影响加载这些类型的序列化。 我试着研究它,但看起来真的很古怪,就像 Python pickle 的问题一样。

@trivialfis对 predict 函数中可能规避此问题的选项有任何想法吗? 我的想法是它与 CPU 指令有关,可能在 R 中比包可以解决的更深。

@hcho3我将尝试将 xgb.save.raw 添加到当前数据管道中,看看是否有帮助。 尽管在我发送的示例中,我确实通过在预测有效的计算机上使用 xgb.save.raw 进行了尝试,但不幸的是它仍然导致 xgb.load 上的 numeric(0)。 诚然,这是在模型已经通过 saveRDS 保存之后,也许该过程的某些东西会破坏它,即使它仍然在它创建的环境中工作。

据我所知,在创建模型的环境中仍有一些东西需要存在于它使用的每个环境中。 我不知道它是什么。

不,我的意思是xgb.save ,而不是xgb.save.raw

@trivialfis请注意,CRAN 上的 XGBoost 包仍然是 0.90。

我尝试了 xgb.save,通过 xgb.load() 将它加载到 R 中,同样的东西是 numeric(0)。 见附件 xgb.save

xgbModelSaved.xgb.zip

还 - 在生成模型的同一台计算机上使用该线程前面的 modelList 中的数据测试了相同的方法 - 它在那里工作。

无论您如何对它进行切片,xgb.save、xgb.save.raw、saveRDS 等,创建模型的计算机环境都存在一些限制它在其他地方使用的情况。

我可以使用您提供的模型文件重现该问题。 但是,我不知道模型文件是如何生成的。 您能否提供更多上下文,例如

  • 操作系统
  • XGBoost 版本
  • 保存模型的命令

OS X(卡特琳娜)。 XGBoost 从源代码构建,1.0(系统支持 openMP)。 最初使用 saveRDS 保存的模型。 我将尝试重新运行它并通过不同的方式保存并报告。

我从头开始重新生成模型,使用 xgb.save 保存它(例如,除了预测数据,不使用 saveRDS 或 readRDS)并使用 xgb.load 加载。 相同的结果 - 预测适用于用于生成模型的计算机系统(OS X,XGB 1.0),但在另一个系统(Windows 7,XGB 0.9)上失败。 将它和模型列表附加到此消息。 如果我可以做任何其他事情来帮助诊断此问题,请告诉我。

xgb_model <- xgb.load("Z:/Desktop/newxgbModelSaved.xgb")
modelList <- readRDS("Z:/Desktop/modelList2.rdata")
attach(modelList)
predict(object=xgb_model, newdata=as.matrix(caretModel$trainingData[,!colnames(caretModel$trainingData) %in% ".outcome"]))
numeric(0)

newxgbModelSaved.xgb.zip

modelList2.rdata.zip

@leedrake5可以在 Windows 上使用 XGBoost 1.0 吗?

@trivialfis这可能是模型文件向后兼容性的问题。

这绝对是版本控制。 我刚刚放弃了 1.0 版本的 XGBoost,从 CRAN 安装了 0.9,并且上面概述的方法有效。

我尝试使用最新版本从源代码安装 0.90,但 dmlc-core 文件夹为空,因此 Cmake 抛出必要的错误。 非常希望保留 openMP 功能,但这会发生。

我知道了。 您是否尝试在 Windows 上安装 1.0.0 版本?

这就是这个线程的最初原因,奇怪的是。 会尝试,但由于项目不能再等待,所以会有延迟。 如果这是一个问题,我怀疑在我发送的 ubuntu 虚拟映像上从源安装 1.0 会解决同样的问题。

@leedrake5是的,你应该匹配 XGBoost 的版本。 要么处处使用 0.90,要么处处使用 1.0.0。

@trivialfis我确实记得我们对二进制模型格式进行了重大更改。 是对的吗?

不,我们向后兼容,1.0 肯定应该从 0.9 加载模型

@trivialfis感谢您的澄清。 在这种情况下,让我们将此票视为一个错误,因为我们期望向后兼容并找到一个反例。 这周我会看看它。

我认为提议的标题更改是倒退的——1.0 中生成的模型不能用于预测 0.90。 我不知道版本之间的兼容性程度如何,但至少一个信息性错误应该会有所帮助。

哎呀,我的坏。

@trivialfis我相信@leedrake5要求的是前向兼容性,即将模型从1.0.0 加载到0.90。 不确定这是否是我们的承诺。

@leedrake5我尝试在 Ubuntu 虚拟机中安装 1.0.0,现在 RDS 文件加载正常,我得到了一个实数向量。 所以很可能是版本问题。
1 0 0

编辑。 屏幕截图中的警告消息很奇怪: Loading model from < 1.0.0, consider saving it again 。 这不应该在这里,因为该模型是由 1.0.0 生成的。

我同意。 很高兴就问题所在设置收敛。

不幸的是,从生产的角度来看,我必须使模型可以在大规模版本中部署(ergo,CRAN 安装)。 但是,我知道如何让 XGBoost 从现在开始工作,这是绝对的关键点。

我仍然无法从从版本或树下载的源代码安装 0.9,但我想我找到了问题。 cub、dmlc-core、rabit,在这些下载中都是空文件夹。 他们还有 @在文件夹之后 - 我认为这与哪些文件夹为空有关。 如果我点击这些链接,我可以重建文件夹并继续安装。

看截图:
Screen Shot 2020-03-03 at 9 41 33 PM

是的,我们使用 git 子模块,所以构建指令要求您使用git clone --recursive从源代码安装。 您是否处于 CRAN 安装不足的情况? 如果在任何地方使用 0.90 可以解决您的问题,您可以在任何地方(Linux、Mac、Windows)使用 CRAN 安装吗?

是的 - CRAN 不允许使用 openMP,这对于模型生成来说是一个巨大的福音。 因此将花一些时间弄清楚如何从源代码编译 xgboost 0.90 以使其再次工作。 感谢您为诊断此问题提供的所有帮助。

@leedrake5

知道了。 现在,您可以使用以下命令获取完整的源代码,包括 git 子模块:

git clone --recursive https://github.com/dmlc/xgboost -b release_0.90

这应该获取 XGBoost 源代码并填充 rabit、cub、dmlc-core 目录。 -b release_0.90用于获取 0.90 版本,而不是最新版本。

在旁边:

CRAN 不允许 openMP

这实际上在 1.0.0 中已修复。 我会尽快在 CRAN 上获得 1.0.0 版本。

谢谢你,在所有方面都非常感谢!

@hetong007我们可以向 CRAN 提交 1.0.0 吗?

@hcho3听起来不错,因为我们有一个有效的字节序检测。 我会在一周内提交。

@hetong007 有更新吗? 如果我能以任何方式提供帮助,请告诉我。

@hcho3哦,是的。 请问有没有solaris测试的环境? 从 0.9 开始,solaris 上有一个未解决的错误: https ://www.r-project.org/nosvn/R.check/r-patched-solaris-x86/xgboost-00check.html 我想在提交。

@hetong007我刚刚从 Oracle 下载了可以与 VirtualBox 一起运行的 Solaris VM 映像。 让我尝试重现这个问题。

@hetong007我在 Solaris 中设置 R 环境时遇到了很多麻烦。 特别是,我无法安装igraphtestthat之类的 R 软件包,因为awk之类的实用程序在 Solaris 上的行为不同。 我不知道如何进一步进行。

@hcho3你能说清楚一点吗? 鉴于testthat已通过 CRAN 上的 solaris 检查,我想象一个可以使用install.packages('testthat')在 R 控制台中安装软件包。

@hetong007 igraph包在配置步骤中使用awk ,Solaris 的awk与 GNU awk 的功能不兼容。 可以安装 GNU awk,但它被称为gawk 。 仍在试图弄清楚如何让 R 使用gawk而不是awk

@hcho3好吧,这听起来很糟糕。 我也不知道如何进行。 我刚刚在 CRAN 上查看了igraph的结果页面: https://cran.r-project.org/web/checks/check_results_igraph.html。 感觉我们不会变得更糟。 无论如何我都会提交。

@hetong007谢谢。 我会在某个时候尝试回到 Solaris 测试。 我确信有办法。

@hetong007嗯,是的,提交代码的时候一定要使用分支release_1.0.0

@hcho3预检警告:

* checking whether package 'xgboost' can be installed ... WARNING
Found the following significant warnings:
  amalgamation/../src/common/hist_util.cc:666:72: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct xgboost::tree::GradStats'; use assignment or value-initialization instead [-Wclass-memaccess]
See 'd:/RCompile/CRANguest/R-devel_gcc8/xgboost.Rcheck/00install.out' for details.

00install.out文件在这里(大约 72 小时后可用): https ://win-builder.r-project.org/v6XJQBjzgMaW/00install.out

有没有可能快速修复?

@hetong007这是一个拦截器吗? Memset 用于加速归零直方图(结构数组)。 如果这阻塞了 CRAN,我将放置一个宏保护,以便 R 包将使用普通构造函数。

@hcho3是的,它是一个拦截器。 预检查是自动进行的,提交应该在没有警告的情况下通过。 宏听起来不错,谢谢!

@hcho3你能先尝试使用std::fill吗? 甚至编译器也可能无法将其优化为memset ,我认为它的重要性不足以产生任何可见的性能影响。

@hetong007我做了必要的更改(https://github.com/dmlc/xgboost/commit/3550b16a34055bc8ec33bf0b7006448e8c1a4eca)。 你能再试一次吗?

@trivialfis我将提交一个单独的拉取请求来替换memset

@hcho3感谢您的修复! 如果没有严重的问题,它正在前往 CRAN 的路上。

@hcho3所以它在 Soalris 上失败了,来自 Ripley 教授:

On Solaris it was quicker to diagnose the problems with the GCC compilers:

amalgamation/../src/common/io.cc:120:27: error: ‘POSIX_FADV_SEQUENTIAL’
was not declared in this scope
    posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL);

amalgamation/../src/common/io.cc:120:48: error: ‘posix_fadvise’ was not
declared in this scope
    posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL);

As 'Writing R Extensions' told you, you need to use configure to test
for the presence of non-standard C/C++ functions.  In this case, it
seems that line is not actually necessary.

@hetong007不错。 请告诉 Ripley 教授,感谢您花时间调试问题。 我将继续保护该行仅在适当的 Linux 环境中运行,因为我们只有适当的测试工具来测试 Windows 和 Linux 上的 XGBoost。 理想情况下,不应使用任何非标准 C++ 工具,除非它们首先作为 CI 的一部分进行测试。 我还必须扫描代码库以查找其他非标准 C++ 功能并尝试删除它们。 抄送@trivialfis

@hcho3对我来说听起来不错。 Ripley 教授向 CRAN 提交新论文的截止日期为 2020 年 4 月 6 日。 如果您对详细的安装日志感兴趣,请访问https://cran.r-project.org/web/checks/check_results_xgboost.html

@hetong007提交https://github.com/dmlc/xgboost/commit/d83db4844bae5969609e58cd6bb201e7831cfaa3应该可以解决问题。 我终于设法让最新的 R 与我的 Solaris VM 一起工作,并为 XGBoost 运行 CRAN 检查。

@hcho3 太棒了! 我可以接受它,因为你已经让它通过了 Solaris 的检查吗?

是的,我们现在应该提交。

嗨,我在使用 Python 时遇到了类似的问题。 我通过 xgboost 1.0.1 保存模型,并通过 xgboost 0.9 加载它,预测是空列表。 由于我们的生产环境使用的是 xgboost 0.9,我想知道是否有任何方法可以将保存的 via-xgboost-1.0 模型加载到 xgboost 0.9 中?

@hcho3有没有办法分享你的快照? 这对我们进一步提交也很有价值。

@sunhs我也面临着类似的问题。 你能解决这个问题吗?

@giladmaya不,伙计。 在尝试了几种方法后,我最终决定重新训练模型节省了我的时间。

关闭这个,因为我们无法保证新版本的模型会被旧版本支持。 这就像购买 PlayStation 4 并尝试加载为 PlayStation 5 开发的游戏。

我们只承诺向后兼容,因此您可以使用旧版本保存模型并使用新版本将其加载回来。 这样模型格式就可以随着时间逐渐演变。

此页面是否有帮助?
0 / 5 - 0 等级