Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R h2o检查点参数更改错误-但未更改参数??_R_H2o_Checkpointing - Fatal编程技术网

R h2o检查点参数更改错误-但未更改参数??

R h2o检查点参数更改错误-但未更改参数??,r,h2o,checkpointing,R,H2o,Checkpointing,我正在尝试导出一个“模型”的权重和偏差,在该模型中,我最初没有使用“export_weights_and_biases=TRUE”训练该模型 因此,我想尝试检查模型,并尝试在新的“model2”中导出_weights_和_biases=TRUE 但是,尽管没有更改任何参数,并且确保与原始“模型”中一样nfolds=10,检查点模型仍然几乎立即返回参数更改错误(h2o版本3.10.4.6): 有没有办法解决这个问题?我所要做的就是获得我原始“模型”的所有权重和偏差 谢谢大家! 我自己解决了这个问题

我正在尝试导出一个“模型”的权重和偏差,在该模型中,我最初没有使用“export_weights_and_biases=TRUE”训练该模型

因此,我想尝试检查模型,并尝试在新的“model2”中导出_weights_和_biases=TRUE

但是,尽管没有更改任何参数,并且确保与原始“模型”中一样nfolds=10,检查点模型仍然几乎立即返回参数更改错误(h2o版本3.10.4.6):

有没有办法解决这个问题?我所要做的就是获得我原始“模型”的所有权重和偏差


谢谢大家!

我自己解决了这个问题:

1) 只有在原始模型满足以下条件时才能执行检查点:

  • 没有使用CV
  • 或使用CV,但将折叠赋值设置为模
  • 当然,如果其他某些参数没有改变,比如nfold

2) 如果可能的话,我仍然想知道如何提取模型的权重和偏差。谢谢。

假设
model.dl
是指向深度学习模型的指针,您可以执行
model。dl@model$weights
型号。dl@model$biases
提取分别包含权重和偏差信息的列表。然后,在列表中循环以提取列表的
name
属性(返回帧id),并使用
h2o.getFrame()
返回帧本身。谢谢Mauna+1。如果我将export_weights_和_biases设置为TRUE,那么您的解决方案就可以工作,而我在原始模型中没有这样做。因此,我尝试检查我的模型,以便将其设置为TRUE。但是b/c我没有使用模CV,我无法检查。有没有任何建议从模型的导出权重和偏差参数未设置为TRUE的模型中提取权重和偏差?除了重新训练模型外,我想不出任何其他方法。方法如下:使用
h2o.loadModel()
将模型加载到
model.dl
中。然后您可以使用
模型。dl@parameters
获取当前参数集的列表,并将“导出权重”和“偏差”添加为TRUE。最后,使用
h2o.deeplearning()
上的
do.call()
和更新的参数列表重新训练模型。谢谢。我要试一试。虽然我没有尝试过do.call,但我尝试过使用原始模型中的所有参数、种子和数据集对新模型进行重新训练,但我无法让h2o以与原始模型相同的泛化性重现模型。事实上,所有经过再培训的模型100%都未能很好地概括,但所有模型都训练、验证和测试得很好。我想我只是幸运地使用了我的原始模型——我真的需要以某种方式提取权重和偏差。我已经读到了可能与POJO有关,但我不确定。
water.exceptions.H2OIllegalArgumentException: Cannot change parameter: '_nfolds': 10 -> 0

water.exceptions.H2OIllegalArgumentException: Cannot change parameter: '_nfolds': 10 -> 0
    at hex.deeplearning.DeepLearningModel$DeepLearningParameters$Sanity.checkIfParameterChangeAllowed(DeepLearningModel.java:2078)
    at hex.deeplearning.DeepLearning$DeepLearningDriver.buildModel(DeepLearning.java:249)
    at hex.deeplearning.DeepLearning$DeepLearningDriver.computeImpl(DeepLearning.java:211)
    at hex.ModelBuilder$Driver.compute2(ModelBuilder.java:169)
    at hex.deeplearning.DeepLearning$DeepLearningDriver.compute2(DeepLearning.java:204)
    at water.H2O$H2OCountedCompleter.compute(H2O.java:1241)
    at jsr166y.CountedCompleter.exec(CountedCompleter.java:468)
    at jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:263)
    at jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:974)
    at jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1477)
    at jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)

Error: water.exceptions.H2OIllegalArgumentException: Cannot change parameter: '_nfolds': 10 -> 0