#------------------------------------------------- -----------------------------------------------#
getwd() # ¿dónde estoy?
library (reticulate) # cargar reticulate
os <- reticulate::import("os") # una pequeña prueba funcional
os$listdir(".") # si todo va bien: directorio local


#------------------------------------------------- -----------------------------------------------#
# instalar paquetes de python (¡solo lo hacemos una vez!)
# esto es útil cuando estos paquetes están ausentes, evita
# seleccionar el entorno de instalación incorrecto

py_install('matplotlib')
py_install('pandas')

py_install('graphviz')
py_install('pydot')
py_install('pydotplus')

#------------------------------------------------- -----------------------------------------------#
library (reticulate)
py_config() # la configuración local de python
miniconda_update() # para estar en la última versión
conda_list() # posible configuración de conda
# nos permite comprobar el entorno
#conda que vamos a usar
# aquí r-reticulate

# Para obtener ayuda, busque "conda-tools" en la ayuda

# Versión anterior eliminada
envname <- "r-reticulate" # especifica el entorno correcto
conda_remove(envname = envname,
             paquetes="tensorflow",
             conda="auto")

# nueva versión instalada con PIP!
envname <- "r-reticulate"
conda_install(envname = envname,
              paquetes="tensorflow",
              pips = TRUE)

#------------------------------------------------- -----------------------------------------------#

install.packages("tensorflow") # el paquete R
library (tensorflow)
# install_tensorflow() # posible reinstalación si hay problema

install.packages("keras")
install.packages("tfdatasets")
install.packages("tfestimators")
install.packages("tfruns")

#------------------------------------------------- ----------------------------------------------#

library (tensorflow)
library (keras)
library (tfdatasets)

library (reticulate)
py_install("scipy") # ¡si no está instalado!
scipy <- import("scipy")
kutils <- import("tensorflow.keras.utils") # ¡observe cómo importar desde tf!

is_keras_disponible() # ¿keras está bien en el lado de python?
# CPU, GPU... disponible para procesos
tf$config$experimental$list_physical_devices()

hola<- tf$constant('Mi primer tensor')
hola # la definición del tensor
tf$print(hola) 

#-----------------------------------------------------------------------------------------------#

ceros <- tf$Variable(tf$ceros(shape(2L,5L,3L)))
print(ceros)

ceros <-  k_ceros(shape = c(2, 5, 3))
print(ceros)

array(0.0 , c(5,3,2))

#-----------------------------------------------------------------------------------------------#
