安装后出现浮点异常 rstan/brms
Floating Point Exception after installing rstan/brms
我目前正在尝试在我的 Fedora34 机器上获取 rstan 和 brms 运行ning,但在几个小时后未能成功。至关重要的是,测试示例模型或其他模型总是给我一个“浮点异常”。当我 运行 RStudio 中的代码时,它只是崩溃并中止所有内容,而来自终端的 运行ning 基本上是相同的,但给了我浮点异常的提示,如下所示。遗憾的是,错误消息仅限于“浮点异常”的信息。
make
命令是:
make -f '/usr/lib64/R/etc/Makeconf' -f '/usr/share/R/make/shlib.mk' \
-f '/root/.R/Makevars' CXX='$(CXX14) $(CXX14STD)' \
CXXFLAGS='$(CXX14FLAGS)' CXXPICFLAGS='$(CXX14PICFLAGS)' \
SHLIB_LDFLAGS='$(SHLIB_CXX14LDFLAGS)' SHLIB_LD='$(SHLIB_CXX14LD)' \
SHLIB='filef8256c0e3305.so' OBJECTS='filef8256c0e3305.o'
make 将使用:
g++ -std=gnu++14 -I"/usr/include/R" -DNDEBUG -I"/usr/local/lib/R/library \
/Rcpp/include/" -I"/usr/local/lib/R/library/RcppEigen/include/" \
-I"/usr/local/lib/R/library/RcppEigen/include/unsupported" \
-I"/usr/local/lib/R/library/BH/include" \
-I"/usr/local/lib/R/library/StanHeaders/include/src/" \
-I"/usr/local/lib/R/library/StanHeaders/include/" \
-I"/usr/local/lib/R/library/RcppParallel/include/" -I"/usr/local/lib/R/library/rstan/include" \
-DEIGEN_NO_DEBUG -DBOOST_DISABLE_ASSERTS \
-DBOOST_PENDING_INTEGER_LOG2_HPP -DSTAN_THREADS -DBOOST_NO_AUTO_PTR \
-include '/usr/local/lib/R/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp' \
-D_REENTRANT -DRCPP_PARALLEL_USE_TBB=1 -I/usr/local/include -fpic \
-O3 -march=native -mtune=native -fPIC \
-c filef8256c0e3305.cpp -o filef8256c0e3305.o
if test "zfilef8256c0e3305.o" != "z"; then \
echo g++ -std=gnu++14 -shared -L"/usr/lib64/R/lib" -Wl,-z,relro \
-Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld \
-o filef8256c0e3305.so filef8256c0e3305.o '/usr/local/lib/R/library/rstan/lib//libStanServices.a' \
-L'/usr/local/lib/R/library/StanHeaders/lib/' -lStanHeaders \
-L'/usr/local/lib/R/library/RcppParallel/lib/' -ltbb \
-L"/usr/lib64/R/lib" -lR; \
g++ -std=gnu++14 -shared -L"/usr/lib64/R/lib" -Wl,-z,relro \
-Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o filef8256c0e3305.so filef8256c0e3305.o \
'/usr/local/lib/R/library/rstan/lib//libStanServices.a' \
-L'/usr/local/lib/R/library/StanHeaders/lib/' -lStanHeaders \
-L'/usr/local/lib/R/library/RcppParallel/lib/' -ltbb \
-L"/usr/lib64/R/lib" -lR; \
fi
Floating point exception
这对我来说似乎很奇怪,因为应该没有这样的错误,因为我没有尝试做任何花哨的事情,只是 运行 示例模型。我尝试完全重新安装 R,从源代码重新安装 rstan,但是 none 它起作用了。此外,cmdstanr 向我提供了所有 C++ 链和路径都已正确设置的信息。 cmdstanr 的 MCMC 也 运行 正确,所以问题似乎是 brms 和 rstan 的问题。
部分包裹信息:
OS: x86_64 (Fedora 34), linux-gnu;斯坦:2.21.2; RCPP:1.0.6;内联:0.3.17,R 4.0.4
不知道实际问题是什么,但鉴于 cmdstanr
有效,您可以通过
解决您的问题
brms(..., backend="cmdstanr")
参见 here 对 rstan
和 cmdstanr
之间差异的一些讨论:其中
Running Stan via external processes results in fewer unexpected crashes, especially in RStudio.
我目前正在尝试在我的 Fedora34 机器上获取 rstan 和 brms 运行ning,但在几个小时后未能成功。至关重要的是,测试示例模型或其他模型总是给我一个“浮点异常”。当我 运行 RStudio 中的代码时,它只是崩溃并中止所有内容,而来自终端的 运行ning 基本上是相同的,但给了我浮点异常的提示,如下所示。遗憾的是,错误消息仅限于“浮点异常”的信息。
make
命令是:
make -f '/usr/lib64/R/etc/Makeconf' -f '/usr/share/R/make/shlib.mk' \
-f '/root/.R/Makevars' CXX='$(CXX14) $(CXX14STD)' \
CXXFLAGS='$(CXX14FLAGS)' CXXPICFLAGS='$(CXX14PICFLAGS)' \
SHLIB_LDFLAGS='$(SHLIB_CXX14LDFLAGS)' SHLIB_LD='$(SHLIB_CXX14LD)' \
SHLIB='filef8256c0e3305.so' OBJECTS='filef8256c0e3305.o'
make 将使用:
g++ -std=gnu++14 -I"/usr/include/R" -DNDEBUG -I"/usr/local/lib/R/library \
/Rcpp/include/" -I"/usr/local/lib/R/library/RcppEigen/include/" \
-I"/usr/local/lib/R/library/RcppEigen/include/unsupported" \
-I"/usr/local/lib/R/library/BH/include" \
-I"/usr/local/lib/R/library/StanHeaders/include/src/" \
-I"/usr/local/lib/R/library/StanHeaders/include/" \
-I"/usr/local/lib/R/library/RcppParallel/include/" -I"/usr/local/lib/R/library/rstan/include" \
-DEIGEN_NO_DEBUG -DBOOST_DISABLE_ASSERTS \
-DBOOST_PENDING_INTEGER_LOG2_HPP -DSTAN_THREADS -DBOOST_NO_AUTO_PTR \
-include '/usr/local/lib/R/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp' \
-D_REENTRANT -DRCPP_PARALLEL_USE_TBB=1 -I/usr/local/include -fpic \
-O3 -march=native -mtune=native -fPIC \
-c filef8256c0e3305.cpp -o filef8256c0e3305.o
if test "zfilef8256c0e3305.o" != "z"; then \
echo g++ -std=gnu++14 -shared -L"/usr/lib64/R/lib" -Wl,-z,relro \
-Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld \
-o filef8256c0e3305.so filef8256c0e3305.o '/usr/local/lib/R/library/rstan/lib//libStanServices.a' \
-L'/usr/local/lib/R/library/StanHeaders/lib/' -lStanHeaders \
-L'/usr/local/lib/R/library/RcppParallel/lib/' -ltbb \
-L"/usr/lib64/R/lib" -lR; \
g++ -std=gnu++14 -shared -L"/usr/lib64/R/lib" -Wl,-z,relro \
-Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o filef8256c0e3305.so filef8256c0e3305.o \
'/usr/local/lib/R/library/rstan/lib//libStanServices.a' \
-L'/usr/local/lib/R/library/StanHeaders/lib/' -lStanHeaders \
-L'/usr/local/lib/R/library/RcppParallel/lib/' -ltbb \
-L"/usr/lib64/R/lib" -lR; \
fi
Floating point exception
这对我来说似乎很奇怪,因为应该没有这样的错误,因为我没有尝试做任何花哨的事情,只是 运行 示例模型。我尝试完全重新安装 R,从源代码重新安装 rstan,但是 none 它起作用了。此外,cmdstanr 向我提供了所有 C++ 链和路径都已正确设置的信息。 cmdstanr 的 MCMC 也 运行 正确,所以问题似乎是 brms 和 rstan 的问题。
部分包裹信息: OS: x86_64 (Fedora 34), linux-gnu;斯坦:2.21.2; RCPP:1.0.6;内联:0.3.17,R 4.0.4
不知道实际问题是什么,但鉴于 cmdstanr
有效,您可以通过
brms(..., backend="cmdstanr")
参见 here 对 rstan
和 cmdstanr
之间差异的一些讨论:其中
Running Stan via external processes results in fewer unexpected crashes, especially in RStudio.