#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, которые нужны Грете. Надеюсь, это поможет в будущем!