我通过使用RcppArmadillo
和OpenMP
库以及以下命令在R中准备了一个包:
RcppArmadillo.package.skeleton("mypackage")
compileAttributes(verbose=TRUE)
Run Code Online (Sandbox Code Playgroud)
另外,在DESCRIPTION
我添加的文件中:
Imports: Rcpp (>= 0.12.8), RcppArmadillo
LinkingTo:Rcpp, RcppArmadillo
Depends: RcppArmadillo
Run Code Online (Sandbox Code Playgroud)
在NAMESPACE
我添加的文件中:
import(RcppArmadillo)
importFrom(Rcpp, evalCpp)
Run Code Online (Sandbox Code Playgroud)
然后我运行以下代码cmd
:
R CMD build mypackage
R CMD INSTALL mypackage.tar.gz
Run Code Online (Sandbox Code Playgroud)
我在我的计算机中构建并安装软件包,现在就使用它.但我的学院和朋友无法安装该软件包.错误消息是关于RcppArmadillo
和OpenMP
库.
例如:
致命错误:找不到'omp.h'文件
有没有人在这种情况下有过经验?我必须在我的包中进行哪种类型的设置来解决这个问题?
我需要使用 Tensorflow 和 Tensorflow_Probability。通过以下命令安装后:conda install tensorflow-probability
or pip install --upgrade tensorflow-probability
,我在笔记本中运行它:
import tensorflow_probability as tfp
Run Code Online (Sandbox Code Playgroud)
但它返回此错误:
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-8-41494c8c96ff> in <module>
----> 1 import tensorflow_probability as tfp
ModuleNotFoundError: No module named 'tensorflow_probability'.
Run Code Online (Sandbox Code Playgroud)
结果
pip list
Run Code Online (Sandbox Code Playgroud)
如下(相关部分):
tblib 1.3.2
tensorboard 1.13.1
tensorflow 1.13.1
tensorflow-estimator 1.13.0
tensorflow-probability 0.7.0
termcolor 1.1.0
terminado 0.8.1
testpath 0.4.2
tfp-nightly 0.8.0.dev20190708
Theano 1.0.4
toolz 0.9.0
Run Code Online (Sandbox Code Playgroud)
谁能帮我解决这个问题(我使用的是 Win 10)?
我正在使用C++中的Armadillo库.首先,我计算一个特殊的矩阵(在我的代码中:P),然后我计算QR分解(在我的代码中:Q).最后,我需要将P和Q以及另一个矩阵T返回到我的主函数.
#include <iostream>
#include <armadillo>
using namespace std;
using namespace arma;
double phi(int n, int q){
...
mat P(n,n);
P=...
mat Q,R;
qr(Q,R,P);
return P:
return Q;
return Q;
...
}
int main() {
...
int n,q;
cout<<"Enter the value of parameters n and q respectively:"<<endl;
cin>> n>>q;
phi(n,q);
...
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种在犰狳中使用指针和参考来返回这些矩阵的方法.这里我的矩阵很大,通常是500*500或1000*1000.有没有人有解决方案?先谢谢
我试图nearPD
在我的Rcpp代码中使用函数.虽然看起来微不足道,但我找不到为什么它不起作用.它是我的代码的简化版本:
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace arma;
using namespace Rcpp;
// [[Rcpp::export]]
mat eBsc(mat R){
Rcpp::Environment Matrix("package:Matrix");
Rcpp::Function nearPD = Matrix["nearPD"];
Rcpp::List PD=nearPD(R);
mat P = PD["mat"];
return P;
}
Run Code Online (Sandbox Code Playgroud)
但是当我想测试它时,例如如下R:
A <- matrix(1, 3,3); A[1,3] <- A[3,1] <- 0
d<-eBsc(A)
Run Code Online (Sandbox Code Playgroud)
我看到这个错误信息:"Error in eBsc(A) : not a matrix"
.我必须提到nearPD返回一个输出列表,第一个是矩阵.