Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

251
Views
Configuración de Tensorflow en RStudio/ R | CentOS

Durante los últimos 5 días, estoy tratando de hacer que los paquetes de Keras/Tensorflow funcionen en R. Estoy usando RStudio para la instalación y he usado conda , miniconda , virtualenv pero al final falla cada vez. Instalar una biblioteca no debería ser una pesadilla, especialmente cuando hablamos de R ( uno de los mejores lenguajes estadísticos ) y TensorFlow ( una de las mejores bibliotecas de aprendizaje profundo ). ¿Alguien puede compartir una forma confiable de instalar Keras/Tensorflow en CentOS 7?

Los siguientes son los pasos que estoy usando para instalar tensorflow en RStudio.

Dado que RStudio simplemente se bloquea cada vez que ejecuto tensorflow::tf_config() , no tengo forma de verificar qué está fallando.

ingrese la descripción de la imagen aquí

 devtools::install_github("rstudio/reticulate") devtools::install_github("rstudio/keras") # This package also installs tensorflow library(reticulate) reticulate::install_miniconda() reticulate::use_miniconda("r-reticulate") library(tensorflow) tensorflow::tf_config() **# Crashes at this point** sessionInfo() R version 3.6.0 (2019-04-26) Platform: x86_64-redhat-linux-gnu (64-bit) Running under: CentOS Linux 7 (Core) Matrix products: default BLAS/LAPACK: /usr/lib64/R/lib/libRblas.so locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] tensorflow_2.7.0.9000 keras_2.7.0.9000 reticulate_1.22-9000 loaded via a namespace (and not attached): [1] Rcpp_1.0.7 lattice_0.20-45 png_0.1-7 zeallot_0.1.0 [5] rappdirs_0.3.3 grid_3.6.0 R6_2.5.1 jsonlite_1.7.2 [9] magrittr_2.0.1 tfruns_1.5.0 rlang_0.4.12 whisker_0.4 [13] Matrix_1.3-4 generics_0.1.1 tools_3.6.0 compiler_3.6.0 [17] base64enc_0.1-3

Actualización 1 La única forma en que RStudio no falla al instalar tensorflow es ejecutando los siguientes pasos:

Primero, creé un nuevo entorno virtual usando conda

 conda create --name py38 python=3.8.0 conda activate py38 conda install tensorflow=2.4

Luego, desde RStudio, instalé reticulate y activé el entorno virtual que creé anteriormente usando conda

 devtools::install_github("rstudio/reticulate") library(reticulate) reticulate::use_condaenv("/root/.conda/envs/py38", required = TRUE) reticulate::use_python("/root/.conda/envs/py38/bin/python3.8", required = TRUE) reticulate::py_available(initialize = TRUE) ts <- reticulate::import("tensorflow")

Tan pronto como intento importar tensorflow en RStudio, carga la biblioteca /lib64/libstdc++.so.6 en lugar de /root/.conda/envs/py38/lib/libstdc++.so.6 y aparece el siguiente error:

 Error in py_module_import(module, convert = convert) : ImportError: Traceback (most recent call last): File "/root/.conda/envs/py38/lib/python3.8/site-packages/tensorflow/python/pywrap_tensorflow.py", line 64, in <module> from tensorflow.python._pywrap_tensorflow_internal import * File "/home/R/x86_64-redhat-linux-gnu-library/3.6/reticulate/python/rpytools/loader.py", line 39, in _import_hook module = _import( ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /root/.conda/envs/py38/lib/python3.8/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so) Failed to load the native TensorFlow runtime. See https://www.tensorflow.org/install/errors for some common reasons and solutions. Include the entire stack trace above this error message when asking for help.

Esto es lo que hay dentro /lib64/libstdc++.so.6

 > strings /lib64/libstdc++.so.6 | grep GLIBC GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBC_2.3 GLIBC_2.2.5 GLIBC_2.14 GLIBC_2.4 GLIBC_2.3.2 GLIBCXX_DEBUG_MESSAGE_LENGTH

Para resolver el problema de la biblioteca, agregué la ruta de la libstdc++.so.6 que tiene GLIBCXX_3.4.20 en RStudio.

 system('export LD_LIBRARY_PATH=/root/.conda/envs/py38/lib/:$LD_LIBRARY_PATH')

y también

 Sys.setenv("LD_LIBRARY_PATH" = "/root/.conda/envs/py38/lib")

Pero aún recibo el mismo error ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' . De alguna manera, RStudio todavía carga /lib64/libstdc++.so.6 primero en lugar de /root/.conda/envs/py38/lib/libstdc++.so.6

En lugar de RStudio , si ejecuto los pasos anteriores en la consola R , también obtengo exactamente el mismo error.

Actualización 2: Aquí se publica una solución

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Quizás mis intentos fallidos ayuden a alguien más a resolver este problema; mi acercamiento:

  • arranque una máquina virtual CentOS 7 limpia
  • instalar R y algunas dependencias
 sudo yum install epel-release sudo yum install R sudo yum install libxml2-devel sudo yum install openssl-devel sudo yum install libcurl-devel sudo yum install libXcomposite libXcursor libXi libXtst libXrandr alsa-lib mesa-libEGL libXdamage mesa-libGL libXScrnSaver
  • Descargue e instale Anaconda a través del script de instalación de Linux
  • Crear un nuevo entorno conda
 conda init conda create --name tf conda activate tf conda install -c conda-forge tensorflow

**Desde dentro de este conda env puede importar tensorflow en python sin error; ahora para acceder a tf a través de R

  • instalar un gcc actualizado a través de devtoolset
 sudo yum install centos-release-scl sudo yum install devtoolset-7-gcc*
  • intente usar tensorflow en R a través del paquete reticulado
 scl enable devtoolset-7 R install.packages("remotes") remotes::install_github('rstudio/reticulate') reticulate::use_condaenv("tf", conda = "~/anaconda3/bin/conda") reticulate::repl_python() # This works as expected but the command "import tensorflow" crashes R # Error: *** caught segfault *** address 0xf8, cause 'memory not mapped' # Also tried: install.packages("devtools") devtools::install_github('rstudio/tensorflow') devtools::install_github('rstudio/keras') library(tensorflow) install_tensorflow() # "successful" tensorflow::tf_config() # Error: *** caught segfault *** address 0xf8, cause 'memory not mapped'
  • prueba versiones anteriores de tensorflow/keras
 devtools::install_github('rstudio/tensorflow@v2.4.0') devtools::install_github('rstudio/keras@v2.4.0') library(tensorflow) tf_config() # Error: *** caught segfault *** address 0xf8, cause 'memory not mapped'
  • Pruebe una versión actualizada de R (v4.0)
 # deactivate conda sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm export R_VERSION=4.0.0 curl -O https://cdn.rstudio.com/r/centos-7/pkgs/R-${R_VERSION}-1-1.x86_64.rpm sudo yum install R-${R_VERSION}-1-1.x86_64.rpm scl enable devtoolset-7 /opt/R/4.0.0/bin/R install.packages("devtools") devtools::install_github('rstudio/reticulate') reticulate::use_condaenv("tf", conda = "~/anaconda3/bin/conda") reticulate::repl_python() # 'import tensorflow' resulted in "core dumped"

Supongo que el problema es con R/CentOS, ya que puede importar y usar tensorflow a través de Python normalmente, pero no estoy seguro de qué más probar.

También me gustaría decir que no tuve problemas con Ubuntu (que es específicamente compatible con tensorflow, junto con macOS y Windows), y encontré estos documentos que podrían ser de ayuda: https://wiki.hpcc.msu. edu/display/ITH/Instalación+TensorFlow+usando+anaconda / https://wiki.hpcc.msu.edu/pages/viewpage.action?pageId=22709999

over 4 years ago · Santiago Trujillo Report

0

Me tomó más de 15 días y finalmente resolví este problema.

Inicie una máquina virtual CentOS 7 limpia, instale R y dependencias (tomado de la respuesta de Jared):

 yum install epel-release yum install R yum install libxml2-devel yum install openssl-devel yum install libcurl-devel yum install libXcomposite libXcursor libXi libXtst libXrandr alsa-lib mesa-libEGL libXdamage mesa-libGL libXScrnSaver

Ahora, crea un entorno conda.

 yum install conda conda clean -a # Clean cache and remove old packages, if you already have conda installed # Install all the packages together and let conda handle versioning. It is important to give a Python version while setting up the environment. Since Tensorflow supports python 3.9.0, I have used this version conda create -y -n "tf" python=3.9.0 ipython tensorflow keras r-essentials r-reticulate r-tensorflow conda activate tf

Abra un nuevo puerto ( 7878 o elija cualquier número de puerto que desee) en el servidor para acceder a RStudio con nuevas bibliotecas de entorno conda

 iptables -A INPUT -p tcp --dport 7878 -j ACCEPT /sbin/service iptables save

luego inicie RStudio de la siguiente manera:

 /usr/lib/rstudio-server/bin/rserver \ --server-daemonize=0 \ --www-port 7878 \ --rsession-which-r=$(which R) \ --rsession-ld-library-path=$CONDA_PREFIX/lib

Tendrá su entorno anterior intacto en el puerto predeterminado 8787 y un nuevo entorno con Tensorflow y Keras en el 7878 .

El siguiente código ahora funciona bien en RStudio

 install.packages("reticulate") install.packages("tensorflow") library(reticulate) library(tensorflow) ts <- reticulate::import("tensorflow")
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!