gpt4 book ai didi

wolfram-mathematica - 保存 FittedModel 有问题

转载 作者:行者123 更新时间:2023-12-04 02:10:42 25 4
gpt4 key购买 nike

在 Mathematica 7 和 8 中,我们发现 Mathematica 无法正确保存和获取拟合例程的结果。我希望这里有人知道:此错误的最佳实践解决方法是什么?

我们的任务是使用 NonlinearModelFit 拟合大量数据集,它为每个数据集返回一个 FittedModel。这些拟合需要一段时间,我们尝试使用 Save 和 DumpSave 将结果存储到文件中。随后的分析使用 Get 将 FittedModel(s) 拉回。

Mathematica 在没有警告的情况下执行 Save & Get,但返回的 FittedModel 有问题。我们调用 Get 并从磁盘加载一个 FittedModel,将结果称为“foo”。尝试 foo[10] 评估输入 10 的拟合模型。我们看到的错误是 foo["BestFitParameters"] 应该返回一个规则列表,而是将字符串插入函数中,因为它是一个像 10 这样的数字。尝试 foo [{"BestFitParameters","BestFitParameters"}] 应该在一个列表中给出两次规则,但保持未评估的错误 foo。

在此之上还有一种奇怪且误导性的行为,这取决于我们是删除/清除 foo 还是退出内核:

  • 将 FittedModel 计算为 foo
  • Save 或 DumpSave foo 到磁盘
  • 删除和/或清除 foo
  • 从磁盘获取 foo
  • foo 工作正常

  • 但是如果我们重新启动内核它就会失败
  • 将 FittedModel 计算为 foo
  • Save 或 DumpSave foo 到磁盘
  • 杀死并重启内核
  • 从磁盘获取 foo
  • foo 有问题

  • 有没有人见过这种行为?

    这个错误背后有很好的解释吗?

    有没有好的解决方法?

    最佳答案

    这是一个已知的错误,幸运的是有一个简单的解决方法。评价前Get阅读已保存的 FittedModel ,评估一个虚拟拟合模型代码。

    In[1]:= NonlinearModelFit[Range[5], a x, x, a];

    In[2]:= Get[FileNameJoin[{$HomeDirectory, "Desktop", "bignlm.mx"}]];

    In[3]:= AbsoluteTiming[nlm["BestFitParameters"]]

    Out[3]= {17.6010000, {a -> 1.45015, b -> 2.33999}}

    如果跳过此初始评估,由于未能自动加载实现该功能的所有相关代码,拟合模型似乎不会如所述正常工作。评价 In[1]基本上强制加载。

    关于wolfram-mathematica - 保存 FittedModel 有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6596200/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com