Moi-même sommeils content d’parler que luz la traduction 0.3.0 est actuellement sur CRAN. Cette traduction apporte plusieurs améliorations à l’ustensile de dissection de cours d’habitude buissonneux verso la initiale jour par Chris McMaster. Dans moi-même n’avions pas de livre sur la traduction 0.2.0, moi-même mettrons comme en platitude plusieurs améliorations qui remontent à cette traduction.

Qu’est-ce que luz?

Attendu qu’il s’agit d’un conditionnement partiellement frais, moi-même commençons ce certificat de blog envers un chaussette rétroactif de la créer laquelle luz offices. Si toi-même savez déjà pardon luz c’est-à-dire, n’hésitez pas à escalader à la partie suivante.

luz est une API de escarpé phase verso torch qui vise à encapsuler la bague de quart parmi un série de débris de nomenclature réutilisables. Il capot le invendu prescrit verso créer un modèle envers torchévite les errata
zero_grad()backward()step() suite d’avertisseurs, et simplifie comme le mécanisme de disgrâce des situation et des modèles compris les CPU et les GPU.

Pour luz toi-même pouvez avaler votre torch nn_module()par appréciation le perceptron à quelques parturition fini ci-après :

modnn <- nn_module(
  initialize = function(input_size) {
    self$hidden <- nn_linear(input_size, 50)
    self$accélération <- nn_relu()
    self$dropout <- nn_dropout(0.4)
    self$produit <- nn_linear(50, 1)
  },
  forward = function(x) {
    x %>% 
      self$hidden() %>% 
      self$accélération() %>% 
      self$dropout() %>% 
      self$produit()
  }
)

et adaptez-le à un série de situation particularisé avec suit :

fitted <- modnn %>% 
  setup(
    loss = nn_mse_loss(),
    optimizer = optim_rmsprop,
    metrics = list(luz_metric_mae())
  ) %>% 
  set_hparams(input_size = 50) %>% 
  fit(
    data = list(x_train, y_train),
    valid_data = list(x_valid, y_valid),
    epochs = 20
  )

luz formera logiquement votre modèle sur le GPU s’il est libre, affichera une charmante baguette de rechute durant la quart et gérera la journalisation des métriques, quelque en s’assurant que l’prise des situation de entérinement est effectuée de la altruiste addition (par appréciation, en désactivant l’répit).

luz peut personnalité désenveloppé à de nombreuses parturition d’être méconnaissables, ce qui toi-même permet d’réparer doucement vos connaissances, car toi-même avez attrait de fonctionnalités surtout avancées parmi votre carcasse. Par appréciation, toi-même pouvez fabriquer des métriques personnalisées, des rappels ou même particulariser la bague de quart privé.

Avec en éprouver surtout luzlisez la partie de engrenage sur le endroit Web et parcourez la pinacothèque d’exemples.

Lesquelles de nouveau parmi luz?

Praticable de dissection de cours d’habitude

En deep learning, percevoir un bon cours d’habitude est indispensable verso domination caler son modèle. S’il est excessivement hésitant, toi-même aurez attrait de excessivement d’itérations verso que votre dissipation converge, et ceci pourrait ne pas personnalité commode si votre modèle prend excessivement de période à s’achever. S’il est excessivement disciple, la dissipation peut tonner et toi-même ne pourrez probablement en aucun cas affluer au maximum.

Le lr_finder() la empressement implémente l’processus fouillé parmi les cours d’habitude cycliques verso les réseaux de neurones de quart
(Smith 2015) diffusé parmi le framework FastAI (Howard et Gugger 2020). Il faut un nn_module() et plusieurs situation verso procréer une conjuration de situation envers les pertes et le cours d’habitude à tout station.

model <- net %>% setup(
  loss = torch::nn_cross_entropy_loss(),
  optimizer = torch::optim_adam
)

records <- lr_finder(
  object = model, 
  data = train_ds, 
  verbose = FALSE,
  dataloader_options = list(batch_size = 32),
  start_lr = 1e-6, # the smallest value that will be tried
  end_lr = 1 # the largest value to be experimented with
)

str(records)
#> Classes 'lr_records' and 'data.frame':   100 obs. of  2 variables:
#>  $ lr  : num  1.15e-06 1.32e-06 1.51e-06 1.74e-06 2.00e-06 ...
#>  $ loss: num  2.31 2.3 2.29 2.3 2.31 ...

Toi-même pouvez administrer la conduite de tracé intégrée verso placarder les résultats textuels, conséquemment qu’une sang-froid lissée de addition exponentielle de la dissipation.

plot(records) +
  ggplot2::coord_cartesian(ylim = c(NA, 5))
Graphique affichant les résultats de lr_finder()

Si toi-même voulez avertir à commenter les résultats de ce méandre et en éprouver surtout sur la épistémologie, lisez l’traité sur le appareil de dissection de cours d’habitude sur le
luz endroit web.

Le salaire des situation

Pendant la initiale traduction de luzle isolé bonhomme d’instrument capable à personnalité appliqué avec situation d’crise verso fit réalisait un torch dataloader(). Depuis la traduction 0.2.0, luz prend comme en offensive les matrices/plaques R (ou à elles récapitulations imbriquées) en aussi que situation d’crise, conséquemment que torch dataset()s.

Gain en offensive des abstractions de bas phase avec dataloader() car les situation d’crise sont importantes, car envers elles-mêmes, l’usager a un maîtrise rempli sur la créer laquelle les situation d’crise sont chargées. Par appréciation, toi-même pouvez accoucher des chargeurs de situation parallèles, renverser le logique de massage, etc. Malgré, redevoir montrer artisanalement le débardeur de situation semble infructueusement embêtant sinon toi-même n’avez pas attrait de particulariser pardon que ce sinon.

Une différent fine perfectionnement au sujet de à la traduction 0.2.0, intuitive de Keras, est que toi-même pouvez escalader une sang-froid compris 0 et 1 à fitc’est valid_data paramètre, et luz prélèvera un tube à essai apériodique de cette importance parmi l’série d’habitude, à administrer verso les situation de entérinement.

En éprouver surtout à ce chapitre parmi la meuble du
fit()
empressement.

Originaux rappels

Pendant les versions récentes, de authentiques rappels intégrés ont été ajoutés à luz:

  • luz_callback_gradient_clip(): Bienfaisance à prévenir la dissemblance des pertes en tranchant les grands gradients.
  • luz_callback_keep_best_model(): À tout ancienneté, s’il y a une perfectionnement de la versification surveillée, moi-même sérialisons les pondérations du modèle parmi un dossier saccadé. Sinon l’patron est parfait, moi-même rechargeons les intérêt du important modèle.
  • luz_callback_mixup(): Fabrication de ‘mixup: Beyond Empirical Risk Minimization’
    (Zhang et al. 2017). Mixup est une charmante manière d’aggravation des situation qui permet d’réparer la assortiment du modèle et les performances globales.

Toi-même pouvez repérer le changelog plein libre ici.

Pendant ce certificat, moi-même tenons comme à sacrer :

  • @jonthegeek verso de précieuses améliorations parmi le luz guides de engrenage.

  • @mattwarkentin verso de nombreuses bonnes idées, améliorations et corrections de bugs.

  • @cmcmaster1 verso la gageure en œuvre élémentaire de l’ustensile de dissection de cours d’habitude et d’divergentes corrections de bogues.

  • @skeydan verso la gageure en œuvre du arrière-goût Mixup et les améliorations apportées à l’ustensile de dissection de cours d’habitude.

Remerciement!

Figure de Dil sur Unsplash

Howard, Jeremy et Satyre Gugger. 2020. “Fastai : une API en parturition verso l’habitude en hauteur.” Demande 11 (2) : 108. https://doi.org/10.3390/info11020108.

Smith, Leslie N. 2015. “Rapport d’habitude cycliques verso la quart de réseaux de neurones.” https://doi.org/10.48550/ARXIV.1506.01186.

Zhang, Hongyi, Moustapha Cissé, Yann N. Cachalot et David Lopez-Paz. 2017. “Mixup: Au-delà de la infériorisation expérimental des risques.” https://doi.org/10.48550/ARXIV.1710.09412.

By nsmaat