Skip to content

Commit

Permalink
build based on 61a7240
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed May 9, 2024
1 parent 7af5a34 commit 09441f4
Show file tree
Hide file tree
Showing 30 changed files with 98 additions and 105 deletions.
2 changes: 1 addition & 1 deletion dev/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.10.3","generation_timestamp":"2024-05-08T20:19:46","documenter_version":"1.4.1"}}
{"documenter":{"julia_version":"1.10.3","generation_timestamp":"2024-05-09T04:07:06","documenter_version":"1.4.1"}}
22 changes: 11 additions & 11 deletions dev/convenience_methods/index.html

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions dev/document_strings/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/feature_importances/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/fitting_distributions/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/form_of_data/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/how_to_register/index.html

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions dev/implementing_a_data_front_end/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/iterative_models/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Iterative models and the update! method · MLJModelInterface</title><meta name="title" content="Iterative models and the update! method · MLJModelInterface"/><meta property="og:title" content="Iterative models and the update! method · MLJModelInterface"/><meta property="twitter:title" content="Iterative models and the update! method · MLJModelInterface"/><meta name="description" content="Documentation for MLJModelInterface."/><meta property="og:description" content="Documentation for MLJModelInterface."/><meta property="twitter:description" content="Documentation for MLJModelInterface."/><script data-outdated-warner src="../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../search_index.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../">MLJModelInterface</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li><a class="tocitem" href="../quick_start_guide/">Quick-start guide</a></li><li><a class="tocitem" href="../the_model_type_hierarchy/">The model type hierarchy</a></li><li><a class="tocitem" href="../type_declarations/">New model type declarations</a></li><li><a class="tocitem" href="../supervised_models/">Supervised models</a></li><li><a class="tocitem" href="../summary_of_methods/">Summary of methods</a></li><li><a class="tocitem" href="../form_of_data/">The form of data for fitting and predicting</a></li><li><a class="tocitem" href="../the_fit_method/">The fit method</a></li><li><a class="tocitem" href="../the_fitted_params_method/">The fitted_params method</a></li><li><a class="tocitem" href="../the_predict_method/">The predict method</a></li><li><a class="tocitem" href="../the_predict_joint_method/">The predict_joint method</a></li><li><a class="tocitem" href="../training_losses/">Training losses</a></li><li><a class="tocitem" href="../feature_importances/">Feature importances</a></li><li><a class="tocitem" href="../trait_declarations/">Trait declarations</a></li><li class="is-active"><a class="tocitem" href>Iterative models and the update! method</a></li><li><a class="tocitem" href="../implementing_a_data_front_end/">Implementing a data front end</a></li><li><a class="tocitem" href="../supervised_models_with_transform/">Supervised models with a transform method</a></li><li><a class="tocitem" href="../fitting_distributions/">Models that learn a probability distribution</a></li><li><a class="tocitem" href="../serialization/">Serialization</a></li><li><a class="tocitem" href="../document_strings/">Document strings</a></li><li><a class="tocitem" href="../unsupervised_models/">Unsupervised models</a></li><li><a class="tocitem" href="../static_models/">Static models</a></li><li><a class="tocitem" href="../outlier_detection_models/">Outlier detection models</a></li><li><a class="tocitem" href="../convenience_methods/">Convenience methods</a></li><li><a class="tocitem" href="../where_to_put_code/">Where to place code implementing new models</a></li><li><a class="tocitem" href="../how_to_register/">How to add models to the MLJ Model Registry</a></li><li><a class="tocitem" href="../reference/">Reference</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Iterative models and the update! method</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Iterative models and the update! method</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/JuliaAI/MLJModelInterface.jl" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/JuliaAI/MLJModelInterface.jl/blob/dev/docs/src/iterative_models.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="Iterative-models-and-the-update!-method"><a class="docs-heading-anchor" href="#Iterative-models-and-the-update!-method">Iterative models and the update! method</a><a id="Iterative-models-and-the-update!-method-1"></a><a class="docs-heading-anchor-permalink" href="#Iterative-models-and-the-update!-method" title="Permalink"></a></h1><p>An <code>update</code> method may be optionally overloaded to enable a call by MLJ to retrain a model (on the same training data) to avoid repeating computations unnecessarily.</p><pre><code class="language-julia hljs">MMI.update(model::SomeSupervisedModel, verbosity, old_fitresult, old_cache, X, y) -&gt; fit
result, cache, report
MMI.update(model::SomeSupervisedModel, verbosity, old_fitresult, old_cache, X, y, w=nothing) -&gt; fit
result, cache, report</code></pre><p>Here the second variation applies if <code>SomeSupervisedModel</code> supports sample weights.</p><p>If an MLJ <code>Machine</code> is being <code>fit!</code> and it is not the first time, then <code>update</code> is called instead of <code>fit</code>, unless the machine <code>fit!</code> has been called with a new <code>rows</code> keyword argument. However, <code>MLJModelInterface</code> defines a fallback for <code>update</code> which just calls <code>fit</code>. For context, see the <a href="https://JuliaAI.github.io/MLJ.jl/dev/internals/">Internals</a> section of the MLJ manual.</p><p>Learning networks wrapped as models constitute one use case (see the <a href="https://JuliaAI.github.io/MLJ.jl/dev/composing_models/">Composing Models</a> section of the MLJ manual): one would like each component model to be retrained only when hyperparameter changes &quot;upstream&quot; make this necessary. In this case, MLJ provides a fallback (specifically, the fallback is for any subtype of <code>SupervisedNetwork = Union{DeterministicNetwork,ProbabilisticNetwork}</code>). A second more generally relevant use case is iterative models, where calls to increase the number of iterations only restarts the iterative procedure if other hyperparameters have also changed. (A useful method for inspecting model changes in such cases is <code>MLJModelInterface.is_same_except</code>. ) For an example, see <a href="https://github.com/JuliaAI/MLJEnsembles.jl">MLJEnsembles.jl</a>.</p><p>A third use case is to avoid repeating the time-consuming preprocessing of <code>X</code> and <code>y</code> required by some models.</p><p>If the argument <code>fitresult</code> (returned by a preceding call to <code>fit</code>) is not sufficient for performing an update, the author can arrange for <code>fit</code> to output in its <code>cache</code> return value any additional information required (for example, pre-processed versions of <code>X</code> and <code>y</code>), as this is also passed as an argument to the <code>update</code> method.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../trait_declarations/">« Trait declarations</a><a class="docs-footer-nextpage" href="../implementing_a_data_front_end/">Implementing a data front end »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.4.1 on <span class="colophon-date" title="Wednesday 8 May 2024 20:19">Wednesday 8 May 2024</span>. Using Julia version 1.10.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
result, cache, report</code></pre><p>Here the second variation applies if <code>SomeSupervisedModel</code> supports sample weights.</p><p>If an MLJ <code>Machine</code> is being <code>fit!</code> and it is not the first time, then <code>update</code> is called instead of <code>fit</code>, unless the machine <code>fit!</code> has been called with a new <code>rows</code> keyword argument. However, <code>MLJModelInterface</code> defines a fallback for <code>update</code> which just calls <code>fit</code>. For context, see the <a href="https://JuliaAI.github.io/MLJ.jl/dev/internals/">Internals</a> section of the MLJ manual.</p><p>Learning networks wrapped as models constitute one use case (see the <a href="https://JuliaAI.github.io/MLJ.jl/dev/composing_models/">Composing Models</a> section of the MLJ manual): one would like each component model to be retrained only when hyperparameter changes &quot;upstream&quot; make this necessary. In this case, MLJ provides a fallback (specifically, the fallback is for any subtype of <code>SupervisedNetwork = Union{DeterministicNetwork,ProbabilisticNetwork}</code>). A second more generally relevant use case is iterative models, where calls to increase the number of iterations only restarts the iterative procedure if other hyperparameters have also changed. (A useful method for inspecting model changes in such cases is <code>MLJModelInterface.is_same_except</code>. ) For an example, see <a href="https://github.com/JuliaAI/MLJEnsembles.jl">MLJEnsembles.jl</a>.</p><p>A third use case is to avoid repeating the time-consuming preprocessing of <code>X</code> and <code>y</code> required by some models.</p><p>If the argument <code>fitresult</code> (returned by a preceding call to <code>fit</code>) is not sufficient for performing an update, the author can arrange for <code>fit</code> to output in its <code>cache</code> return value any additional information required (for example, pre-processed versions of <code>X</code> and <code>y</code>), as this is also passed as an argument to the <code>update</code> method.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../trait_declarations/">« Trait declarations</a><a class="docs-footer-nextpage" href="../implementing_a_data_front_end/">Implementing a data front end »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="auto">Automatic (OS)</option><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.4.1 on <span class="colophon-date" title="Thursday 9 May 2024 04:07">Thursday 9 May 2024</span>. Using Julia version 1.10.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Binary file modified dev/objects.inv
Binary file not shown.
Loading

0 comments on commit 09441f4

Please sign in to comment.