Tuesday, September 27, 2022
HomeArtificial IntelligenceRStudio AI Weblog: TensorFlow and Keras 2.9

RStudio AI Weblog: TensorFlow and Keras 2.9

The discharge of Deep Studying with R, 2nd Version coincides with new releases of TensorFlow and Keras. These releases deliver many refinements that enable for extra idiomatic and concise R code.

First, the set of Tensor strategies for base R generics has significantly expanded. The set of R generics that work with TensorFlow Tensors is now fairly in depth:

strategies(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] ground       Im          is.finite   is.infinite is.nan     
[41] size      lgamma      log         log10       log1p      
[46] log2        max         imply        min         Mod        
[51] print       prod        vary       rbind       Re         
[56] rep         spherical       signal        sin         sinpi      
[61] kind        sqrt        str         sum         t          
[66] tan         tanpi      

Which means usually you’ll be able to write the identical code for TensorFlow Tensors as you’d for R arrays. For instance, think about this small operate from Chapter 11 of the guide:

reweight_distribution <-
  operate(original_distribution, temperature = 0.5) {
    original_distribution %>%
      { exp(log(.) / temperature) } %>%
      { . / sum(.) }

Notice that features like reweight_distribution() work with each 1D R vectors and 1D TensorFlow Tensors, since exp(), log(), /, and sum() are all R generics with strategies for TensorFlow Tensors.

In the identical vein, this Keras launch brings with it a refinement to the best way customized class extensions to Keras are outlined. Partially impressed by the brand new R7 syntax, there’s a new household of features: new_layer_class(), new_model_class(), new_metric_class(), and so forth. This new interface considerably simplifies the quantity of boilerplate code required to outline customized Keras extensions—a nice R interface that serves as a facade over the mechanics of sub-classing Python lessons. This new interface is the yang to the yin of %py_class%–a technique to mime the Python class definition syntax in R. In fact, the “uncooked” API of changing an R6Class() to Python through r_to_py() continues to be accessible for customers that require full management.

This launch additionally brings with it a cornucopia of small enhancements all through the Keras R interface: up to date print() and plot() strategies for fashions, enhancements to freeze_weights() and load_model_tf(), new exported utilities like zip_lists() and %<>%. And let’s not overlook to say a brand new household of R features for modifying the educational fee throughout coaching, with a set of built-in schedules like learning_rate_schedule_cosine_decay(), complemented by an interface for creating customized schedules with new_learning_rate_schedule_class().

You’ll find the complete launch notes for the R packages right here:

The discharge notes for the R packages inform solely half the story nonetheless. The R interfaces to Keras and TensorFlow work by embedding a full Python course of in R (through the reticulate package deal). One of many main advantages of this design is that R customers have full entry to all the pieces in each R and Python. In different phrases, the R interface all the time has characteristic parity with the Python interface—something you are able to do with TensorFlow in Python, you are able to do in R simply as simply. This implies the discharge notes for the Python releases of TensorFlow are simply as related for R customers:

Thanks for studying!

Photograph by Raphael Wild on Unsplash


Textual content and figures are licensed underneath Inventive Commons Attribution CC BY 4.0. The figures which have been reused from different sources do not fall underneath this license and might be acknowledged by a notice of their caption: “Determine from …”.


For attribution, please cite this work as

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

BibTeX quotation

  creator = {Kalinowski, Tomasz},
  title = {RStudio AI Weblog: TensorFlow and Keras 2.9},
  url = {https://blogs.rstudio.com/tensorflow/posts/2022-06-09-tf-2-9/},
  yr = {2022}


Please enter your comment!
Please enter your name here

Most Popular