Stan 代码适用于 Windows 但不适用于 Linux

Posted

技术标签:

【中文标题】Stan 代码适用于 Windows 但不适用于 Linux【英文标题】:Stan code works on Windows but not Linux 【发布时间】:2017-07-13 03:49:43 【问题描述】:

在 Windows 上与 rstan 一起使用时,我的以下 Stan 代码运行良好。然而,当在 Linux (CentOS 6) 的集群上运行时,它会抛出一个很长的错误,其中包括大约 500 行,我猜是 Rcpp 代码,最后一个块如下:

编译代码中的错误(f,代码,语言 = 语言,详细 = 详细): 编译错误,未创建函数/方法!在 /scratch/user/siamak/R_libs/StanHeaders/include/stan/math/rev/mat.hpp(15) 包含的文件中, 从 /scratch/user/siamak/R_libs/StanHeaders/include/stan/math.hpp(4), 从 /scratch/user/siamak/R_libs/StanHeaders/include/src/stan/model/model_header.hpp(4), 来自文件 6ff02c925624.cpp(8): /general/software/x86_64/tamusc/R_tamu/R_LIBS/3.3.2-iomkl-2017A-Python-2.7.12-default-mt/RcppEigen/include/Eigen/src/Cholesky/LLT.h(57):错误:类“Eigen::Ref>”没有成员“选项” 选项 = MatrixType::选项, ^ 在“/scratch/user/siamak/R_libs/StanHeaders/include/stan/数学/rev/mat/fun/cholesky_decompose.hpp" 在包含的文件中 另外:警告信息: 运行命令'/sw/eb/software/R/3.3.2-iomkl-2017A-Python-2.7.12-default-mt/lib64/R/bin/R CMD SHLIB file6ff02c925624.cpp 2> file6ff02c925624.cpp.err。 txt' 的状态为 1

有什么意见吗?

data
int<lower=0> n;          //number of points
int<lower=1> d;          //dimension
int<lower=1> G;          //number of groups
int<lower=0> M;
int<lower=1> Jg[M];
int<lower=1> Start[G];
int<lower=1> End[G];
int<lower=1,upper=G> Ig[n];
matrix[d,n] X;
cov_matrix[d] Lambda;
real<lower=d-1> nu;
cov_matrix[d] B;
vector[d] m;


parameters
vector[d] mu;            //mean
cov_matrix[d] Sigma;   //covariance



model
//prior
Sigma ~ inv_wishart(nu,Lambda);
mu ~ multi_normal(m,B);
//likelihood
for (i in 1:n)
    X[Jg[Start[Ig[i]]:End[Ig[i]]],i] ~ 
 multi_normal(mu[Jg[Start[Ig[i]]:End[Ig[i]]]],
    Sigma[Jg[Start[Ig[i]]:End[Ig[i]]],Jg[Start[Ig[i]]:End[Ig[i]]]]);
    
 

【问题讨论】:

什么编译器?什么版本? 编译器是 gcc6,是的,它是问题的根源。我从源代码重新安装了 rstan 和 Rcpp 并解决了。谢谢! 【参考方案1】:

问题出在 gcc6 编译器上。我从源头重新安装了 rstan 和 Rcpp 包并解决了问题!

【讨论】:

以上是关于Stan 代码适用于 Windows 但不适用于 Linux的主要内容,如果未能解决你的问题,请参考以下文章

相同的 Web API 代码适用于 Windows 10,但不适用于 Linux Debian Buster

创建 PDF 适用于 Unity (Windows) 但不适用于 Android 设备

样式表元素适用于 Windows,但不适用于 raspberry-pi

jupyter notebook 中的 multiprocessing.Pool 适用于 linux 但不适用于 windows

Tkinter 画布图像适用于 Windows 但不适用于 OSX

QApplication::setWindowIcon 适用于 Windows XP,但不适用于 Windows 7