Weblog Posit AI: TensorFlow e Keras 2.9



Weblog Posit AI: TensorFlow e Keras 2.9

A liberação de Aprendizado profundo com R, 2ª edição coincide com novos lançamentos do TensorFlow e Keras. Essas versões trazem muitos refinamentos que permitem um código R mais idiomático e conciso.

Primeiro, o conjunto de métodos Tensor para genéricos de base R foi bastante expandido. O conjunto de genéricos R que funcionam com tensores do TensorFlow agora é bastante extenso:

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) flooring       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      

Isso significa que muitas vezes você pode escrever o mesmo código para tensores do TensorFlow que faria para matrizes R. Por exemplo, considere esta pequena função do Capítulo 11 do livro:

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

Observe que funções como reweight_distribution() trabalhar com vetores 1D R e tensores 1D TensorFlow, já que exp(), log(), /e
sum() são todos genéricos R com métodos para tensores TensorFlow.

Na mesma linha, esta versão do Keras traz consigo um refinamento na forma como as extensões de classe personalizadas para Keras são definidas. Parcialmente inspirado no novo R7 sintaxe, há uma nova família de funções: new_layer_class(), new_model_class(),
new_metric_class()e assim por diante. Essa nova interface simplifica substancialmente a quantidade de código padrão necessário para definir extensões Keras personalizadas – uma interface R agradável que serve como uma fachada sobre a mecânica de subclassificação de lessons Python. Esta nova interface é o yang para o yin do %py_class%–uma maneira de imitar a sintaxe de definição de classe Python em R. Claro, a API “bruta” de conversão de um
R6Class() para Python através r_to_py() ainda está disponível para usuários que exigem controle complete.

Esta versão também traz consigo uma infinidade de pequenas melhorias em toda a interface Keras R: atualizado print() e plot() métodos para modelos, melhorias para freeze_weights() e load_model_tf()novos utilitários exportados como zip_lists() e %<>%. E não esqueçamos de mencionar uma nova família de funções R para modificar a taxa de aprendizagem durante o treinamento, com um conjunto de programações integradas como
learning_rate_schedule_cosine_decay()complementado por uma interface para criação de agendamentos personalizados com new_learning_rate_schedule_class().

Você pode encontrar as notas de lançamento completas dos pacotes R aqui:

As notas de lançamento dos pacotes R contam apenas metade da história. As interfaces R para Keras e TensorFlow funcionam incorporando um processo Python completo em R (por meio do
reticulate pacote). Um dos principais benefícios desse design é que os usuários do R têm acesso complete a tudo no R e Pitão. Em outras palavras, a interface R sempre tem paridade de recursos com a interface Python – tudo o que você pode fazer com o TensorFlow em Python, você pode fazer em R com a mesma facilidade. Isso significa que as notas de lançamento das versões Python do TensorFlow são igualmente relevantes para usuários R:

Obrigado por ler!

Foto de Rafael Selvagem
sobre
Remover respingo

Reutilizar

Texto e figuras estão licenciados sob Inventive Commons Attribution CC POR 4,0. As figuras que foram reutilizadas de outras fontes não se enquadram nesta licença e podem ser reconhecidas por uma nota na sua legenda: “Figura de …”.

Citação

Para atribuição, cite este trabalho como

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/

Citação BibTeX

@misc{kalinowskitf29,
  writer = {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}
}

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *