关键问题是预安装的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"
## ...
按照这些思路,我提供了一个公共的 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,而不必处理这种混乱。