Blog de RStudio AI: TensorFlow y Keras 2.9

El lanzamiento de Aprendizaje profundo con R, 2.ª edición coincide con nuevos lanzamientos de TensorFlow y Keras. Estos lanzamientos traen muchas mejoras que permiten un código R más idiomático y conciso.

En primer lugar, el conjunto de métodos Tensor para los genéricos base R se ha ampliado considerablemente. El conjunto de genéricos de R que funcionan con TensorFlow Tensors ahora es bastante extenso:

methods(class = "tensorflow.tensor")
 [1] -           !           !=          [           [<-        
 [6] *           /           &           %/%         %%         
[11] ^           +           <           <=          ==         
[16] >           >=          |           abs         acos       
[21] all         any         aperm       Arg         asin       
[26] atan        cbind       ceiling     Conj        cos        
[31] cospi       digamma     dim         exp         expm1      
[36] floor       Im          is.finite   is.infinite is.nan     
[41] length      lgamma      log         log10       log1p      
[46] log2        max         mean        min         Mod        
[51] print       prod        range       rbind       Re         
[56] rep         round       sign        sin         sinpi      
[61] sort        sqrt        str         sum         t          
[66] tan         tanpi      

Esto significa que, a menudo, puede escribir el mismo código para TensorFlow Tensors que lo haría para arreglos R. Por ejemplo, considere esta pequeña función del Capítulo 11 del libro:

reweight_distribution <-
  function(original_distribution, temperature = 0.5) 

Tenga en cuenta que funciones como reweight_distribution() trabajar con vectores 1D R y tensores TensorFlow 1D, ya que exp(), log(), /y sum() son todos genéricos de R con métodos para TensorFlow Tensors.

Del mismo modo, esta versión de Keras trae consigo un refinamiento en la forma en que se definen las extensiones de clase personalizadas para Keras. Parcialmente inspirado en el nuevo R7 sintaxis, hay una nueva familia de funciones: new_layer_class(), new_model_class(), new_metric_class(), y así. Esta nueva interfaz simplifica sustancialmente la cantidad de código repetitivo necesario para definir extensiones de Keras personalizadas: una interfaz R agradable que sirve como fachada sobre la mecánica de las clases de subclases de Python. Esta nueva interfaz es el yang del yin de %py_class%–una forma de imitar la sintaxis de definición de clase de Python en R. Por supuesto, la API «en bruto» de convertir un R6Class() a Python a través de r_to_py() todavía está disponible para los usuarios que requieren un control total.

Esta versión también trae consigo una gran cantidad de pequeñas mejoras en la interfaz de Keras R: actualización print() y plot() métodos para modelos, mejoras para freeze_weights() y load_model_tf()nuevas utilidades exportadas como zip_lists() y %<>%. Y no olvidemos mencionar una nueva familia de funciones R para modificar la tasa de aprendizaje durante el entrenamiento, con un conjunto de programas integrados como learning_rate_schedule_cosine_decay()complementado con una interfaz para crear horarios personalizados con new_learning_rate_schedule_class().

Puede encontrar las notas completas de la versión para los paquetes R aquí:

Sin embargo, las notas de lanzamiento de los paquetes R solo cuentan la mitad de la historia. Las interfaces de R para Keras y TensorFlow funcionan incorporando un proceso completo de Python en R (a través de la reticulate paquete). Uno de los principales beneficios de este diseño es que los usuarios de R tienen acceso total a todo tanto en R como en R. y Pitón. En otras palabras, la interfaz de R siempre tiene características similares a las de la interfaz de Python: todo lo que puede hacer con TensorFlow en Python, puede hacerlo en R con la misma facilidad. Esto significa que las notas de la versión para las versiones de Python de TensorFlow son igualmente relevantes para los usuarios de R:

¡Gracias por leer!

Foto por Rafael salvaje en Unsplash

Reutilizar

El texto y las figuras tienen licencia de Creative Commons Attribution CC POR 4.0. Las figuras que se han reutilizado de otras fuentes no se incluyen en esta licencia y se pueden reconocer por una nota en su título: «Figura de…».

Citación

Para la atribución, cite este trabajo como

Kalinowski (2022, June 9). RStudio AI Blog: TensorFlow and Keras 2.9. Retrieved from https://blogs.rstudio.com/tensorflow/posts/2022-06-09-tf-2-9/

cita BibTeX

@misc

Fuente del artículo

¿Que te ha parecido?

Deja un comentario