21.5 C
New York
Friday, November 8, 2024

Posit AI Weblog: TensorFlow and Keras 2.9



the discharge of Deep Studying with R, 2nd Version coincides with the brand new releases of TensorFlow and Keras. These variations present many enhancements that permit for extra idiomatic and concise R code.

First, the set of tensor strategies for R-based generics has been drastically expanded. The set of R generics that work with TensorFlow Tensors is now fairly intensive:

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) type        sqrt        str         sum         t          
(66) tan         tanpi      

This implies which you can typically write the identical code for TensorFlow tensors as you do for R arrays. For instance, think about this little operate from Chapter 11 of the e-book:

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

Please word that it really works like reweight_distribution() work with 1D R vectors and 1D TensorFlow tensors, since exp(), log(), /and
sum() They’re all R generics with strategies for TensorFlow Tensors.

Alongside the identical strains, this model of Keras brings with it a refinement in the way in which customized class extensions for 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 many others. This new interface considerably simplifies the quantity of boilerplate code wanted to outline customized Keras extensions: a pleasant R interface that serves as a facade over the mechanics of subclassing Python courses. This new interface is the yang to the yin of %py_class%–a method to mimic Python class definition syntax in R. After all, the “uncooked” API to transform a
R6Class() to Python through r_to_py() It’s nonetheless obtainable for customers who require full management.

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

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

Nonetheless, the discharge notes for the R packages inform solely half the story. R interfaces with Keras and TensorFlow work by embedding a whole Python course of into R (through
reticulate package deal). One of many primary advantages of this design is that R customers have full entry to all the things in each R and Piton. In different phrases, the R interface at all times has function parity with the Python interface: something you are able to do with TensorFlow in Python, you’ll be able to simply as simply do in R. Which means the TensorFlow Python launch notes are equally related to R customers:

Thanks for studying!

Photograph by Rafael Salvaje
in
unpack

Re-use

Textual content and figures are licensed below a Inventive Commons Attribution license. CC BY 4.0. Figures which have been reused from different sources will not be lined by this license and could be acknowledged by a word of their caption: “Determine of…”.

Quotation

For attribution, please cite this work as

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

BibTeX Quotation

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

Related Articles

Latest Articles