终端进程以退出代码 3221226356 终止(Julia 和 VS Code)

Terminal process terminated with exit code 3221226356 (Julia and VS Code)

我正在尝试 运行 VS Code for Julia 中的以下代码(或直接在 Julia 上)。这是一个计算正态分布 (source) 均值和方差的最大似然估计的简单示例:


Random.seed!(1234)

n = 1_000
data = randn(n)

mle = Model(optimizer_with_attributes(Ipopt.Optimizer, "print_level" => 0))
@NLparameter(mle, problem_data[i = 1:n] == data[i])

μ0 = randn()
σ0 = rand() + 1
@info "Starting guess, mean: $μ0, std: $σ0"

@variable(mle, μ, start = μ0)
@variable(mle, σ >= 0.0, start = σ0)

@NLexpression(mle, loglikelihood,
    -(n / 2) * (log(2π) + 2 * log(σ)) - inv(2 * σ^2) * sum((xi - μ)^2 for xi in problem_data)
)

@NLobjective(mle, Max, loglikelihood)

optimize!(mle)

这是一个使用 JuMP 的非线性优化问题,当 运行 宁 optimize!(mle) 我在 VS 代码中得到 'terminal process terminated with exit code 3221226356'。同样,当我直接在 Julia 中 运行 它时,它会完全关闭。 (我有最新版本)(我在另一台电脑上试过,一切正常)。任何帮助将不胜感激!

P.S。我已经看到它可能与 'heap corruption problem' 有关,但我不知道 means/how 可以解决它。

这已经在 J​​ulia discourse 上交叉发布,我们将继续在那里进行调试:https://discourse.julialang.org/t/cant-run-simple-jump-example/67938

它是:

  • VS-Code 中的一个问题(尽管“当我 运行 它直接在 Julia 中时”可能排除了这个问题)
  • Ipopt 的一个问题,可能是因为它安装了旧版本,或者是与该用户的系统奇怪的不兼容

无论如何,这可能很难调试。