Как установить tensorflow-вероятность в ядро kaggle для языка R.

#r #kaggle #tensorflow-probability #greta

#r #kaggle #tensorflow-вероятность #грета

Вопрос:

Мне нужно установить tensorflow-probability в kaggle kernel для языка R.

Я попытался использовать следующий код,

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

Который, кажется, устанавливает только tensorflow, так как при попытке загрузить пакет greta , который зависит от tensorflow-вероятности, я получаю следующую ошибку,

 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.
  

Также попытался установить его с помощью опции пользовательских пакетов, которая показывает его как установленный, но грета упоминает, что он не установлен.

Ответ №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"
## ...
  

В соответствии с этим я сделал доступным общедоступное ядро 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 обновляется как часть установки Greta с GitHub, поэтому я в конечном итоге использовал версию CRAN.

Надеюсь, в будущем Kaggle просто включит TFP, и вам не придется иметь дело с этим беспорядком.

Комментарии:

1. Спасибо! Я также отправил запрос на извлечение в ядро kaggle R, чтобы добавить tensorflow-probability и greta.

Ответ №2:

Просто хотел сказать, что последняя версия greta, которая будет представлена на CRAN (поэтому версия> 0.4.0) использует новый подход к среде conda при использовании нового помощника по установке install_greta_deps() .

Это означает, что greta будет использовать среду conda для загрузки модулей python, поэтому вы можете устанавливать разные модули python на свой компьютер вместе с greta.

При запуске library(greta) он загружает конкретные версии модулей python, которые нужны Грете. Надеюсь, это поможет в будущем!