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:
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} }