如何在R语言的kaggle内核中安装张量流概率

时间:2019-04-09 13:33:15

标签: r kaggle tensorflow-probability greta

我需要在kaggle内核中为R语言安装tensorflow-probability

我尝试使用以下代码,

library(tensorflow)
install_tensorflow(extra_packages = "tensorflow-probability")

似乎只安装tensorflow,当我尝试加载依赖于tensorflow概率的软件包greta时,出现以下错误,

Error: 

greta requires TensorFlow (>=1.10.0) and Tensorflow Probability (>=0.5.0), but TensorFlow Probability isn't installed. Use:

install_tensorflow(extra_packages = "tensorflow-probability") 
to install the latest version.

还尝试通过自定义软件包选项安装它,该选项显示它已安装,但greta提到未安装。

1 个答案:

答案 0 :(得分:1)

关键问题是预安装的r-tensorflow虚拟环境不在默认位置,这会阻止install_tensorflow()方法对其进行编辑。要解决此问题,首先必须设置WORKON_HOME环境变量,Reticulate使用该变量来标识virtualenv环境的根。我能够按照以下方式进行正确的安装:

# set virtualenv root to where 'r-tensorflow' env is located
Sys.setenv(WORKON_HOME="/root/.virtualenvs")

# install greta
install.packages("greta")

# install tfp
tensorflow::install_tensorflow(envname="r-tensorflow", extra_packages=c("tensorflow-probability==0.3.0"))

# check that TFP is installed in the env
dir("/root/.virtualenvs/r-tensorflow/lib/python2.7/site-packages")
## ...
## [56] "tensorflow"                            
## [57] "tensorflow_probability"                
## [58] "tensorflow_probability-0.3.0.dist-info"
## [59] "tensorflow-1.10.0.dist-info"
## ...

沿着这些行,我制作了运行默认Greta示例的a public Kaggle kernel available

以上代码导致安装了Greta v0.3.0,TF 1.10.0和TFP 0.3.0,这是正确的版本匹配。我还能够使用

安装最新版本
# set virtualenv root to where 'r-tensorflow' env is located
Sys.setenv(WORKON_HOME="/root/.virtualenvs")

# install latest greta
devtools::install_github("greta-dev/greta")

# install tfp
tensorflow::install_tensorflow(envname="r-tensorflow", version="1.13.1", extra_packages=c("tensorflow-probability==0.6.0"))

这也使library(greta)毫无疑问地启动。但是,它在采样期间崩溃,并抱怨assertthat软件包已损坏。请注意,assertthat在GitHub上的Greta安装中得到更新,这就是为什么我最终使用CRAN版本的原因。

希望在将来,Kaggle仅包含TFP,而不必处理这种混乱情况。