Si toi-même avez employé Keras vers stimuler des réseaux de neurones, toi-même connaissez hormis annulé peur l’API séquentielle, qui représente les modèles inférieurement la majeur d’un superposition linéal de accouchement. L’API fonctionnelle toi-même conseil des options supplémentaires : à l’avantagé de accouchement d’hall hétérogènes, toi-même pouvez marier la encan de droit comme des particularité tabulaires. En utilisant singulières sorties, toi-même pouvez fabriquer une retraite et une nomenclature en même température. De mieux, toi-même pouvez réemployer les calques parmi et convaincu les modèles.

Puis l’montage bref de TensorFlow, toi-même gagnez surtout mieux de extensibilité. À l’avantagé de modèles personnalisés, toi-même définissez totalement le partie poésie l’devant à flanc le modèle ad libitum. Ceci signifie que de nombreuses architectures deviennent largement mieux serviables à installer en œuvre, y admis les applications mentionnées plus haut : réseaux antagonistes génératifs, redistribution de diction neuronal, diverses formes de modèles suite à suite. De mieux, pardon toi-même avez un boulevard sincère aux possibilités, et non aux tenseurs, le exacerbation et le débogage du modèle sont formidablement accélérés.

Hein ça convienne?

Dans lequel une montage précoce, les travaux ne sont pas compilées parmi un arborescence, seulement résolument définies parmi votre glossaire R. Ils renvoient des possibilités, et non des poignées symboliques, aux nœuds d’un arborescence de arrière-pensée – ce qui signifie que toi-même n’avez pas appétence d’admettre à un TensorFlow vacation vers les juger.

m1 <- matrix(1:8, nrow = 2, ncol = 4)
m2 <- matrix(1:8, nrow = 4, ncol = 2)
tf$matmul(m1, m2)
tf.Tensor(
(( 50 114)
 ( 60 140)), shape=(2, 2), dtype=int32)

L’montage bref, contre événement soit-elle, est déjà conquête en comptable parmi les versions CRAN actuelles de keras et tensorflow. Le gérer d’montage soucieux décrit le alternance de corvée en catalogue.

Revoilà un collection bref : toi-même définissez un modèle, un optimiseur et une entrain de galvaudage. Les particularité sont diffusées via tfdatasets, y admis complet prétraitement tel que le redimensionnement d’mythe. Ultérieurement, la peloton du modèle n’est qu’une crépu sur les époques, toi-même donnant une disponibilité entière relativement au particularité (et à l’données) d’créer des exercices.

Hein fonctionne la rétropropagation parmi cette contour ? La rigole devant est enregistrée par un GradientTape, et lorsque de la rigole amalgame les gens calculons nettement les gradients de la galvaudage au sujet de aux force du modèle. Ces pondérations sont en conséquence ajustées par l’optimiseur.

with(tf$GradientTape() %as% tapement, {
     
  # run model on current batch
  preds <- model(x)
 
  # compute the loss
  loss <- mse_loss(y, preds, x)
  
})
    
# get gradients of loss w.r.t. model weights
gradients <- tapement$gradient(loss, model$variables)

# update model weights
optimizer$apply_gradients(
  purrr::transpose(list(gradients, model$variables)),
  global_step = tf$cantine$get_or_create_global_step()
)

Saisir le gérer d’montage soucieux vers un appréciation aguerri. Ici, les gens voulons recouper à la complication : Pour sommes-nous si excités à ce amplificateur ? Au moins triade choses me viennent à l’caprice :

  • Les choses qui subsistaient antan compliquées deviennent largement mieux serviables à procéder.
  • Les modèles sont mieux serviables à accroître et mieux serviables à déboguer.
  • Il y a une ressources meilleure concordance convaincu nos modèles intellectuels et le glossaire que les gens écrivons.

Les gens illustrerons ces points à l’avantagé d’un association d’besognes de cas d’montage passionnées qui ont jadis dessiné sur ce blog.

Les choses compliquées rendues mieux serviables

Un bon appréciation d’architectures qui deviennent largement mieux serviables à déterminer comme une montage bref sont les modèles d’vigilance. L’vigilance est un assaisonnement appréciable des modèles suite à suite, par appréciation (seulement pas uniquement) parmi la transcription inconscient.

Donc de l’maniement de LSTM à la jour déversement l’codification et du côté du décodage, le décodeur, accomplissant une mastic récurrente, connaît la suite qu’il a générée jusqu’présentement. Il a équitablement (parmi complets les modèles fors les mieux obligeants) boulevard à la suite d’hall chargée. Uniquement où se trouve parmi la suite d’hall l’interrogation lesquels il a appétence vers proliférer le autrui carte de attaque ? C’est à cette complication que l’vigilance est censée recouper.

Envisagez soutenant de l’adapter parmi le glossaire. Quelque jour qu’il est soldat vers procréer un frais carte, le décodeur doit décrocher l’hall assidue du processus d’vigilance. Ceci signifie que les gens ne pouvons pas directement grossir une mastic d’vigilance convaincu l’encodeur et le décodeur LSTM. Préalablement l’couronnement de l’montage précoce, une corrigé aurait été de l’adapter parmi du glossaire TensorFlow de bas période. Puis une montage bref et des modèles personnalisés, les gens pouvons directement apposer Keras.

Involontairement, l’vigilance n’est pas uniquement raisonnable vers les problèmes de suite à suite. Dans lequel le sous-titrage d’mythe, la attaque est une suite, alors que l’hall est une mythe chargée. Donc de la peuplement d’une explication, l’vigilance est utilisée vers se contenir sur les parties de l’mythe pertinentes à divergentes étapes de température parmi le marche de peuplement de droit.

Possédé arrangeant

En termes de débogabilité, le explicable coïncidence d’apposer des modèles personnalisés (hormis montage bref) simplifie déjà les choses. Si les gens avons un modèle particularisé pardon simple_dot à sauvagement du novice feuilleton sur les intégrations et que les gens ne savons pas si les gens avons les formes correctes, les gens pouvons directement augmenter des instructions de journalisation, pardon cela :

function(x, mask = NULL) {
  
  users <- x(, 1)
  movies <- x(, 2)
  
  user_embedding <- self$user_embedding(users)
  cat(dim(user_embedding), "n")
  
  movie_embedding <- self$movie_embedding(movies)
  cat(dim(movie_embedding), "n")
  
  dot <- self$dot(list(user_embedding, movie_embedding))
  cat(dim(dot), "n")
  dot
}

Puis une montage bref, les choses s’améliorent surtout : les gens pouvons empreindre les possibilités des tenseurs elles.

Uniquement la aise ne s’fixe pas là. Dans lequel la crépu de peloton que les gens avons exposée plus haut, les gens pouvons décrocher des pertes, des force de modèle et des gradients directement en les imprimant. Par appréciation, ajoutez une suite ensuite l’proclamation à tapement$gradient vers empreindre les dégradés de complets les calques inférieurement majeur de détail.

gradients <- tapement$gradient(loss, model$variables)
print(gradients)

Exécuter avouer le modèle mythique

Si toi-même avez lu Deep Learning comme R, toi-même savez qu’il est probatoire de projeter des alternance de corvée moins obligeants, équivalents que ceux-là appelé vers éduquer des GAN ou fabriquer un redistribution de diction neuronal, à l’avantagé de l’API fonctionnelle Keras. Involontairement, le glossaire dessin ne facilite pas le fréquenté de l’recto où toi-même toi-même trouvez parmi le alternance de corvée.

Comparez soutenant l’appréciation des chiffres générateurs comme la parution des GAN. Ailler et discriminateur s’érigent chaque homme en acteurs d’un opéra :

generator <- function(name = NULL) {
  keras_model_custom(name = name, function(self) {
    # ...
  }
}
discriminator <- function(name = NULL) {
  keras_model_custom(name = name, function(self) {
    # ...
  }
}

Les un couple de sont informés de à elles impératifs de galvaudage et optimiseurs respectifs.

Ultérieurement, le baroud commence. La crépu d’initiation n’est qu’une héritage d’exercices de ailler, d’exercices de discriminateur et de rétropropagation à flanc les un couple de modèles. Pas appétence de s’émouvoir de frapper/réchauffer les force aux lieux appropriés.

with(tf$GradientTape() %as% gen_tape, { with(tf$GradientTape() %as% disc_tape, {
  
 # generator procès
 generated_images <- generator(# ...
   
 # discriminator assessments
 disc_real_output <- discriminator(# ... 
 disc_generated_output <- discriminator(# ...
      
 # generator loss
 gen_loss <- generator_loss(# ...                        
 # discriminator loss
 disc_loss <- discriminator_loss(# ...
   
})})
   
# calcucate generator gradients   
gradients_of_generator <- gen_tape$gradient(#...
  
# calcucate discriminator gradients   
gradients_of_discriminator <- disc_tape$gradient(# ...
 
# apply generator gradients to model weights       
generator_optimizer$apply_gradients(# ...

# apply discriminator gradients to model weights 
discriminator_optimizer$apply_gradients(# ...

Le glossaire se rapproche tant de la préparation lesquels les gens imaginons psychologiquement la hasard que presque aucune mnémotechnique n’est boîte vers avoir à l’caprice la fabrication globale.

Dans lequel le même rythme d’idées, ce règle de barreaux se alloué à une modularisation expansion. Cela est illustré par le suivant feuilleton sur les GAN qui comprend des étapes de sous-échantillonnage et de suréchantillonnage pardon U-Net.

Ici, les accouchement de sous-échantillonnage et de suréchantillonnage sont chaque personne factorisées parmi à elles propres modèles

downsample <- function(# ...
  keras_model_custom(name = NULL, function(self) { # ...

de nature qu’ils puissent participer composés de addition limpide parmi la processus d’proclamation du ailler :

# model fields
self$down1 <- downsample(# ...
self$down2 <- downsample(# ...
# ...
# ...

# call method
function(x, mask = NULL, jogging = TRUE) {       
     
  x1 <- x %>% self$down1(jogging = jogging)         
  x2 <- self$down2(x1, jogging = jogging)           
  # ...
  # ...

Enthousiasmer

L’montage bref est surtout une fonctionnalité vigoureusement événement et en conseil de exacerbation. Les gens totaux convaincus que de riche cas d’maniement intéressants se présenteront surtout à relation que ce paradigme sera adopté mieux amplement par les praticiens de l’initiation en proportion.

Involontairement, les gens avons déjà une détail de cas d’maniement illustrant les vastes options, les gains en termes de convivialité, de modularisation et d’beauté offerts par un glossaire d’montage grippe-sou.

Dans une test bref, ces couvertures :

  • Transfert inconscient neuronale comme vigilance. Cet feuilleton prête une avertissement détaillée à l’montage grippe-sou et à ses éléments constitutifs, conséquemment qu’une paraphrase approfondie du processus d’vigilance employé. Puis le disciple, il occupe un nécessiter vigoureusement buté parmi cette détail : il utilise une montage bref vers régler un difficulté qui, diversement, ne pourrait participer intrépide qu’comme du glossaire de bas période âpre à tourmenter et à rédiger.

  • Lumière d’mythe comme vigilance. Ce post s’épaule sur le antérieur en ce angle qu’il ne réexplique pas l’vigilance en catalogue ; malheureusement, il issue le séparation à l’vigilance spatiale appliquée sur les régions de l’mythe.

  • Grossesse de chiffres comme des réseaux antagonistes génératifs convolutifs (DCGAN). Cet feuilleton rangé l’maniement de un couple de modèles personnalisés, chaque homme comme à elles impératifs de galvaudage et à elles optimiseurs associés, et les coïncidence monter par la accroissement devant et amalgame en organisation. C’est possiblement l’appréciation le mieux bouleversant de la préparation lesquels l’montage bref simplifie le codification en s’alignant principalement sur à nous modèle mythique de la hasard.

  • La transcription d’mythe à mythe comme pix2pix est une hétérogène expérience des réseaux antagonistes génératifs, seulement utilise une charpente mieux gênant basée sur le sous-échantillonnage et le suréchantillonnage de bonhomme U-Net. Ceci démontre ressources quel nombre l’montage bref permet un codification modulaire, rendant le soft suprême largement mieux limpide.

  • Accord de diction neuronal. Finalement, cet feuilleton reformule le difficulté de redistribution de diction de addition extasié, résultat à frais à un glossaire limpide et passager.

Tandis toi-même plongez parmi ces applications, c’est une obligeante exemple de se répondre équitablement au gérer d’montage soucieux pour de ne pas dépraver de vue la forêt vers les axes.

Les gens totaux enthousiasmés par les cas d’maniement que nos lecteurs vont présenter !

By nsmaat