1

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

我尝试使用以下代码,

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

这似乎只安装 tensorflow,当我尝试加载greta依赖于 tensorflow-probability 的 package 时,我收到以下错误,

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 提到它未安装。

4

1 回答 1

1

关键问题是预安装的r-tensorflow虚拟环境不在默认位置,这会阻止该install_tensorflow()方法对其进行编辑。为了解决这个问题,首先必须设置WORKON_HOMEReticulate 用来识别 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"
## ...

按照这些思路,我提供了一个公共的 Kaggle 内核,可以运行默认的 Greta 示例。

上述代码导致安装 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,而不必处理这种混乱。

于 2019-04-16T15:44:10.500 回答