4
0
mirror of https://github.com/nerfstudio-project/nerfstudio.git synced 2026-11-11 02:24:38 +08:00
nerfstudio/reference/api/optimizers.html
2025-07-29 02:30:47 +00:00

1337 lines
144 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html class="no-js" lang="en" >
<head><meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<meta name="color-scheme" content="light dark"><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<meta property="og:title" content="Engine" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://docs.nerf.studio/reference/api/optimizers.html" />
<meta property="og:description" content="Optimizers: Optimizers class. Schedulers: Scheduler Classes Trainer: Code to train model. Callbacks: Callback code used for training iterations" />
<meta property="og:image" content="https://assets.nerf.studio/opg.png" />
<meta property="og:image:alt" content="Engine" />
<link rel="index" title="Index" href="../../genindex.html" /><link rel="search" title="Search" href="../../search.html" /><link rel="next" title="Plugins" href="plugins.html" /><link rel="prev" title="Renderers" href="model_components/renderers.html" />
<meta name="generator" content="sphinx-5.2.1, furo 2022.09.29" />
<title>Engine - nerfstudio</title>
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../../_static/styles/furo.css?digest=d81277517bee4d6b0349d71bb2661d4890b5617c" />
<link rel="stylesheet" type="text/css" href="../../_static/mystnb.css" />
<link rel="stylesheet" type="text/css" href="../../_static/togglebutton.css" />
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="../../_static/design-style.b7bb847fb20b106c3d81b95245e65545.min.css" />
<link rel="stylesheet" type="text/css" href="../../_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
<style>
body {
--color-code-background: #f8f9fb;
--color-code-foreground: black;
--color-brand-primary: #d34600;
--color-brand-content: #ff6f00;
}
@media not print {
body[data-theme="dark"] {
--color-code-background: #282C34;
--color-code-foreground: #ABB2BF;
--color-brand-primary: #fdd06c;
--color-brand-content: ##fea96a;
}
@media (prefers-color-scheme: dark) {
body:not([data-theme="light"]) {
--color-code-background: #282C34;
--color-code-foreground: #ABB2BF;
--color-brand-primary: #fdd06c;
--color-brand-content: ##fea96a;
}
}
}
</style><script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script>
<script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/sphinx_highlight.js"></script>
<script src="../../_static/scripts/furo.js"></script>
<script src="../../_static/clipboard.min.js"></script>
<script src="../../_static/copybutton.js"></script>
<script>let toggleHintShow = 'Click to show';</script>
<script>let toggleHintHide = 'Click to hide';</script>
<script>let toggleOpenOnPrint = 'true';</script>
<script src="../../_static/togglebutton.js"></script>
<script>var togglebuttonSelector = '.toggle, .admonition.dropdown, .tag_hide_input div.cell_input, .tag_hide-input div.cell_input, .tag_hide_output div.cell_output, .tag_hide-output div.cell_output, .tag_hide_cell.cell, .tag_hide-cell.cell';</script>
<script src="../../_static/design-tabs.js"></script>
<script src="../../_static/require.min.js"></script>
<script src="../../_static/custom.js"></script>
</head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024">
<path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z"/>
</svg>
</symbol>
<symbol id="svg-menu" viewBox="0 0 24 24">
<title>Menu</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu">
<line x1="3" y1="12" x2="21" y2="12"></line>
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="3" y1="18" x2="21" y2="18"></line>
</svg>
</symbol>
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
<title>Expand</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right">
<polyline points="9 18 15 12 9 6"></polyline>
</svg>
</symbol>
<symbol id="svg-sun" viewBox="0 0 24 24">
<title>Light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="feather-sun">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</symbol>
<symbol id="svg-moon" viewBox="0 0 24 24">
<title>Dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
<symbol id="svg-sun-half" viewBox="0 0 24 24">
<title>Auto light/dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<circle cx="12" cy="12" r="9" />
<path d="M13 12h5" />
<path d="M13 15h4" />
<path d="M13 18h1" />
<path d="M13 9h4" />
<path d="M13 6h1" />
</svg>
</symbol>
</svg>
<input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation">
<input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc">
<label class="overlay sidebar-overlay" for="__navigation">
<div class="visually-hidden">Hide navigation sidebar</div>
</label>
<label class="overlay toc-overlay" for="__toc">
<div class="visually-hidden">Hide table of contents sidebar</div>
</label>
<div class="page">
<header class="mobile-header">
<div class="header-left">
<label class="nav-overlay-icon" for="__navigation">
<div class="visually-hidden">Toggle site navigation sidebar</div>
<i class="icon"><svg><use href="#svg-menu"></use></svg></i>
</label>
</div>
<div class="header-center">
<a href="../../index.html"><div class="brand">nerfstudio</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-header-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
</header>
<aside class="sidebar-drawer">
<div class="sidebar-container">
<div class="sidebar-sticky"><a
class="sidebar-brand"
href="../../index.html"
>
<div class="sidebar-logo-container">
<img
class="sidebar-logo only-light"
src="../../_static/imgs/logo.png"
alt="Light Logo"
/>
<img
class="sidebar-logo only-dark"
src="../../_static/imgs/logo-dark.png"
alt="Dark Logo"
/>
</div>
</a>
<div style="text-align: center">
<script async defer src="https://buttons.github.io/buttons.js"></script>
<!-- Place this tag where you want the button to render. -->
<a
class="github-button"
href="https://github.com/nerfstudio-project/nerfstudio/"
data-color-scheme="no-preference: light; light: light; dark: light;"
data-size="large"
data-show-count="true"
aria-label="Download buttons/github-buttons on GitHub"
>
Github
</a>
<br />
<a
href="https://colab.research.google.com/github/nerfstudio-project/nerfstudio/blob/main/colab/demo.ipynb"
style="
background-color: #ebf0f4;
background-image: linear-gradient(180deg, #f6f8fa, #ebf0f4 90%);
border-radius: 3px;
border: 1px solid #1b1f2426;
display: inline-flex;
cursor: pointer;
color: #0d0d0d;
font-family: Arial;
font-size: 12px;
font-weight: bold;
padding: 5px 41px;
line-height: 16px;
text-decoration: none;
"
>
<svg
viewBox="0 0 24 24"
width="16"
height="16"
class="octicon octicon-mark-github"
>
<g>
<path
d="M4.54,9.46,2.19,7.1a6.93,6.93,0,0,0,0,9.79l2.36-2.36A3.59,3.59,0,0,1,4.54,9.46Z"
style=""
fill="#E8710A"
></path>
<path
d="M2.19,7.1,4.54,9.46a3.59,3.59,0,0,1,5.08,0l1.71-2.93h0l-.1-.08h0A6.93,6.93,0,0,0,2.19,7.1Z"
style=""
fill="#F9AB00"
></path>
<path
d="M11.34,17.46h0L9.62,14.54a3.59,3.59,0,0,1-5.08,0L2.19,16.9a6.93,6.93,0,0,0,9,.65l.11-.09"
style=""
fill="#F9AB00"
></path>
<path
d="M12,7.1a6.93,6.93,0,0,0,0,9.79l2.36-2.36a3.59,3.59,0,1,1,5.08-5.08L21.81,7.1A6.93,6.93,0,0,0,12,7.1Z"
style=""
fill="#F9AB00"
></path>
<path
d="M21.81,7.1,19.46,9.46a3.59,3.59,0,0,1-5.08,5.08L12,16.9A6.93,6.93,0,0,0,21.81,7.1Z"
style=""
fill="#E8710A"
></path>
</g>
</svg>
<span>&nbspcolab</span></a
>
</div><form class="sidebar-search-container" method="get" action="../../search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
<input type="hidden" name="check_keywords" value="yes">
<input type="hidden" name="area" value="default">
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Getting Started</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../quickstart/installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../quickstart/first_nerf.html">Training your first model</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../quickstart/existing_dataset.html">Using existing data</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../quickstart/custom_dataset.html">Using custom data</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../quickstart/viewer_quickstart.html">Using the viewer</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../quickstart/export_geometry.html">Export geometry</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../quickstart/data_conventions.html">Data conventions</a></li>
<li class="toctree-l1"><a class="reference internal" href="../contributing.html">Contributing</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Extensions</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../extensions/blender_addon.html">Blender VFX add-on</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../extensions/maya_plugin.html">Autodesk Maya Plug-in</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../extensions/unreal_engine.html">Exporting to Unreal Engine</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../extensions/sdfstudio.html">SDFStudio</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">NeRFology</span></p>
<ul>
<li class="toctree-l1 has-children"><a class="reference internal" href="../../nerfology/methods/index.html">Methods</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/instant_ngp.html"> Instant-NGP</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/splat.html"> Splatfacto</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/splatw.html"> Splatfacto-W</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/in2n.html"> Instruct-NeRF2NeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/igs2gs.html"> Instruct-GS2GS</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/signerf.html"> SIGNeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/kplanes.html"> K-Planes</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/lerf.html"> LERF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/livescene.html"> LiveScene</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/feature_splatting.html"> Feature-Splatting</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/mipnerf.html"> Mip-NeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/nerf.html"> NeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/nerfacto.html"> Nerfacto</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/nerfbusters.html"> Nerfbusters</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/nerfplayer.html"> NeRFPlayer</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/tetranerf.html"> Tetra-NeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/tensorf.html"> TensoRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/generfacto.html"> Generfacto</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/pynerf.html"> PyNeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/seathru_nerf.html"> SeaThru-NeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/zipnerf.html"> Zip-NeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/bionerf.html"> BioNeRF</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/nerf2gs2nerf.html"> NeRFtoGSandBack</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/methods/opennerf.html"> OpenNeRF</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../../nerfology/model_components/index.html">Model components</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/model_components/visualize_cameras.html"> Cameras models</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/model_components/visualize_samples.html"> Sample representation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/model_components/visualize_samplers.html"> Ray samplers</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/model_components/visualize_spatial_distortions.html"> Spatial distortions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nerfology/model_components/visualize_encoders.html"> Encoders</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Developer Guides</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../developer_guides/new_methods.html">Adding a New Method</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../../developer_guides/pipelines/index.html">Pipelines overview</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" role="switch" type="checkbox"/><label for="toctree-checkbox-3"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../developer_guides/pipelines/dataparsers.html">DataParsers</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" role="switch" type="checkbox"/><label for="toctree-checkbox-4"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="data/dataparsers.html">Data Parsers</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../developer_guides/pipelines/datamanagers.html">DataManagers</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../developer_guides/pipelines/models.html">Models</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../developer_guides/pipelines/fields.html">Fields</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../developer_guides/pipelines/pipelines.html">Pipelines</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../../developer_guides/viewer/index.html">Viewer</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" role="switch" type="checkbox"/><label for="toctree-checkbox-5"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../../developer_guides/viewer/custom_gui.html">Custom GUI</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../developer_guides/viewer/viewer_control.html">Python Viewer Control</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../developer_guides/viewer/local_viewer.html">(Legacy Viewer) Local Server</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../developer_guides/config.html">Customizable configs</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../../developer_guides/debugging_tools/index.html">Debugging tools</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" role="switch" type="checkbox"/><label for="toctree-checkbox-6"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../../developer_guides/debugging_tools/local_logger.html">Local writer</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../developer_guides/debugging_tools/profiling.html">Code profiling support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../developer_guides/debugging_tools/benchmarking.html">Benchmarking workflow</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Reference</span></p>
<ul class="current">
<li class="toctree-l1 has-children"><a class="reference internal" href="../cli/index.html">CLI</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" role="switch" type="checkbox"/><label for="toctree-checkbox-7"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../cli/ns_install_cli.html">ns-install-cli</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cli/ns_process_data.html">ns-process-data</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cli/ns_download_data.html">ns-download-data</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cli/ns_train.html">ns-train</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cli/ns_render.html">ns-render</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cli/ns_viewer.html">ns-viewer</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cli/ns_export.html">ns-export</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cli/ns_eval.html">ns-eval</a></li>
</ul>
</li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">API</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" role="switch" type="checkbox"/><label for="toctree-checkbox-8"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="cameras.html">Cameras</a></li>
<li class="toctree-l2"><a class="reference internal" href="config.html">Configs</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="data/index.html">Data</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" role="switch" type="checkbox"/><label for="toctree-checkbox-9"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="data/dataparsers.html">Data Parsers</a></li>
<li class="toctree-l3"><a class="reference internal" href="data/datamanagers.html">Datamanagers</a></li>
<li class="toctree-l3"><a class="reference internal" href="data/datasets.html">Datasets</a></li>
<li class="toctree-l3"><a class="reference internal" href="data/utils.html">Utils</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="fields.html">Fields</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="field_components/index.html">Field Modules</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" role="switch" type="checkbox"/><label for="toctree-checkbox-10"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="field_components/encodings.html">Encodings</a></li>
<li class="toctree-l3"><a class="reference internal" href="field_components/embeddings.html">Embeddings</a></li>
<li class="toctree-l3"><a class="reference internal" href="field_components/field_heads.html">Field Heads</a></li>
<li class="toctree-l3"><a class="reference internal" href="field_components/mlp.html">MLP</a></li>
<li class="toctree-l3"><a class="reference internal" href="field_components/spatial_distortions.html">Spatial Distortions</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="models.html">Models</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="model_components/index.html">Model components</a><input class="toctree-checkbox" id="toctree-checkbox-11" name="toctree-checkbox-11" role="switch" type="checkbox"/><label for="toctree-checkbox-11"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="model_components/ray_sampler.html">Ray Sampler</a></li>
<li class="toctree-l3"><a class="reference internal" href="model_components/losses.html">Losses</a></li>
<li class="toctree-l3"><a class="reference internal" href="model_components/renderers.html">Renderers</a></li>
</ul>
</li>
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">Engine</a></li>
<li class="toctree-l2"><a class="reference internal" href="plugins.html">Plugins</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="utils/index.html">Utils</a><input class="toctree-checkbox" id="toctree-checkbox-12" name="toctree-checkbox-12" role="switch" type="checkbox"/><label for="toctree-checkbox-12"><div class="visually-hidden">Toggle child pages in navigation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="utils/colors.html">Colors</a></li>
<li class="toctree-l3"><a class="reference internal" href="utils/math.html">Math</a></li>
<li class="toctree-l3"><a class="reference internal" href="utils/colormaps.html">Colormaps</a></li>
<li class="toctree-l3"><a class="reference internal" href="utils/tensor_dataclass.html">TensorDataclass</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="viewer.html">Viewer</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</div>
</aside>
<div class="main">
<div class="content">
<div class="article-container">
<a href="#" class="back-to-top muted-link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path>
</svg>
<span>Back to top</span>
</a>
<div class="content-icon-container">
<div class="theme-toggle-container theme-toggle-content">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-content-icon" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
<article role="main">
<section id="engine">
<span id="id1"></span><h1>Engine<a class="headerlink" href="#engine" title="Permalink to this heading">#</a></h1>
<section id="optimizers">
<h2>Optimizers<a class="headerlink" href="#optimizers" title="Permalink to this heading">#</a></h2>
<p>Optimizers class.</p>
<span class="target" id="module-nerfstudio.engine.optimizers"></span><dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.AdamOptimizerConfig">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.optimizers.</span></span><span class="sig-name descname"><span class="pre">AdamOptimizerConfig</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">_target:</span> <span class="pre">~typing.Type</span> <span class="pre">=</span> <span class="pre">&lt;class</span> <span class="pre">'torch.optim.adam.Adam'&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lr:</span> <span class="pre">float</span> <span class="pre">=</span> <span class="pre">0.0005</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">eps:</span> <span class="pre">float</span> <span class="pre">=</span> <span class="pre">1e-08</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_norm:</span> <span class="pre">~typing.Optional[float]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">weight_decay:</span> <span class="pre">float</span> <span class="pre">=</span> <span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/optimizers.html#AdamOptimizerConfig"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.optimizers.AdamOptimizerConfig" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="#nerfstudio.engine.optimizers.OptimizerConfig" title="nerfstudio.engine.optimizers.OptimizerConfig"><code class="xref py py-class docutils literal notranslate"><span class="pre">OptimizerConfig</span></code></a></p>
<p>Basic optimizer config with Adam</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.AdamOptimizerConfig.weight_decay">
<span class="sig-name descname"><span class="pre">weight_decay</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">float</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0</span></em><a class="headerlink" href="#nerfstudio.engine.optimizers.AdamOptimizerConfig.weight_decay" title="Permalink to this definition">#</a></dt>
<dd><p>The weight decay to use.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.OptimizerConfig">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.optimizers.</span></span><span class="sig-name descname"><span class="pre">OptimizerConfig</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">_target:</span> <span class="pre">~typing.Type</span> <span class="pre">=</span> <span class="pre">&lt;class</span> <span class="pre">'torch.optim.adam.Adam'&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lr:</span> <span class="pre">float</span> <span class="pre">=</span> <span class="pre">0.0005</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">eps:</span> <span class="pre">float</span> <span class="pre">=</span> <span class="pre">1e-08</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_norm:</span> <span class="pre">~typing.Optional[float]</span> <span class="pre">=</span> <span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/optimizers.html#OptimizerConfig"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.optimizers.OptimizerConfig" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="config.html#nerfstudio.configs.base_config.PrintableConfig" title="nerfstudio.configs.base_config.PrintableConfig"><code class="xref py py-class docutils literal notranslate"><span class="pre">PrintableConfig</span></code></a></p>
<p>Basic optimizer config with RAdam</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.OptimizerConfig.eps">
<span class="sig-name descname"><span class="pre">eps</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">float</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1e-08</span></em><a class="headerlink" href="#nerfstudio.engine.optimizers.OptimizerConfig.eps" title="Permalink to this definition">#</a></dt>
<dd><p>The epsilon value to use.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.OptimizerConfig.lr">
<span class="sig-name descname"><span class="pre">lr</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">float</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0.0005</span></em><a class="headerlink" href="#nerfstudio.engine.optimizers.OptimizerConfig.lr" title="Permalink to this definition">#</a></dt>
<dd><p>The learning rate to use.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.OptimizerConfig.max_norm">
<span class="sig-name descname"><span class="pre">max_norm</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">float</span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#nerfstudio.engine.optimizers.OptimizerConfig.max_norm" title="Permalink to this definition">#</a></dt>
<dd><p>The max norm to use for gradient clipping.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.OptimizerConfig.setup">
<span class="sig-name descname"><span class="pre">setup</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">params</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Optimizer</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/optimizers.html#OptimizerConfig.setup"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.optimizers.OptimizerConfig.setup" title="Permalink to this definition">#</a></dt>
<dd><p>Returns the instantiated object using the config.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.Optimizers">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.optimizers.</span></span><span class="sig-name descname"><span class="pre">Optimizers</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">config</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">param_groups</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">Parameter</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/optimizers.html#Optimizers"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.optimizers.Optimizers" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>A set of optimizers.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>config</strong> – The optimizer configuration object.</p></li>
<li><p><strong>param_groups</strong> – A dictionary of parameter groups to optimize.</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.Optimizers.load_optimizers">
<span class="sig-name descname"><span class="pre">load_optimizers</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">loaded_state</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/optimizers.html#Optimizers.load_optimizers"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.optimizers.Optimizers.load_optimizers" title="Permalink to this definition">#</a></dt>
<dd><p>Helper to load the optimizer state from previous checkpoint</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>loaded_state</strong> – the state from the previous checkpoint</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.Optimizers.load_schedulers">
<span class="sig-name descname"><span class="pre">load_schedulers</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">loaded_state</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/optimizers.html#Optimizers.load_schedulers"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.optimizers.Optimizers.load_schedulers" title="Permalink to this definition">#</a></dt>
<dd><p>Helper to load the scheduler state from previous checkpoint</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>loaded_state</strong> – the state from the previous checkpoint</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.Optimizers.optimizer_scaler_step_all">
<span class="sig-name descname"><span class="pre">optimizer_scaler_step_all</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">grad_scaler</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">GradScaler</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/optimizers.html#Optimizers.optimizer_scaler_step_all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.optimizers.Optimizers.optimizer_scaler_step_all" title="Permalink to this definition">#</a></dt>
<dd><p>Take an optimizer step using a grad scaler.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>grad_scaler</strong> – GradScaler to use</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.Optimizers.optimizer_scaler_step_some">
<span class="sig-name descname"><span class="pre">optimizer_scaler_step_some</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">grad_scaler</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">GradScaler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">param_groups</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/optimizers.html#Optimizers.optimizer_scaler_step_some"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.optimizers.Optimizers.optimizer_scaler_step_some" title="Permalink to this definition">#</a></dt>
<dd><p>Take an optimizer step using a grad scaler ONLY on the specified param groups.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>grad_scaler</strong> – GradScaler to use</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.Optimizers.optimizer_step">
<span class="sig-name descname"><span class="pre">optimizer_step</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">param_group_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/optimizers.html#Optimizers.optimizer_step"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.optimizers.Optimizers.optimizer_step" title="Permalink to this definition">#</a></dt>
<dd><p>Fetch and step corresponding optimizer.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>param_group_name</strong> – name of optimizer to step forward</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.Optimizers.optimizer_step_all">
<span class="sig-name descname"><span class="pre">optimizer_step_all</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/optimizers.html#Optimizers.optimizer_step_all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.optimizers.Optimizers.optimizer_step_all" title="Permalink to this definition">#</a></dt>
<dd><p>Run step for all optimizers.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.Optimizers.scheduler_step">
<span class="sig-name descname"><span class="pre">scheduler_step</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">param_group_name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/optimizers.html#Optimizers.scheduler_step"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.optimizers.Optimizers.scheduler_step" title="Permalink to this definition">#</a></dt>
<dd><p>Fetch and step corresponding scheduler.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>param_group_name</strong> – name of scheduler to step forward</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.Optimizers.scheduler_step_all">
<span class="sig-name descname"><span class="pre">scheduler_step_all</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">step</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/optimizers.html#Optimizers.scheduler_step_all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.optimizers.Optimizers.scheduler_step_all" title="Permalink to this definition">#</a></dt>
<dd><p>Run step for all schedulers.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>step</strong> – the current step</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.Optimizers.zero_grad_all">
<span class="sig-name descname"><span class="pre">zero_grad_all</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/optimizers.html#Optimizers.zero_grad_all"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.optimizers.Optimizers.zero_grad_all" title="Permalink to this definition">#</a></dt>
<dd><p>Zero the gradients for all optimizer parameters.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.Optimizers.zero_grad_some">
<span class="sig-name descname"><span class="pre">zero_grad_some</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">param_groups</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/optimizers.html#Optimizers.zero_grad_some"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.optimizers.Optimizers.zero_grad_some" title="Permalink to this definition">#</a></dt>
<dd><p>Zero the gradients for the given parameter groups.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.RAdamOptimizerConfig">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.optimizers.</span></span><span class="sig-name descname"><span class="pre">RAdamOptimizerConfig</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">_target:</span> <span class="pre">~typing.Type</span> <span class="pre">=</span> <span class="pre">&lt;class</span> <span class="pre">'torch.optim.radam.RAdam'&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lr:</span> <span class="pre">float</span> <span class="pre">=</span> <span class="pre">0.0005</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">eps:</span> <span class="pre">float</span> <span class="pre">=</span> <span class="pre">1e-08</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_norm:</span> <span class="pre">~typing.Optional[float]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">weight_decay:</span> <span class="pre">float</span> <span class="pre">=</span> <span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/optimizers.html#RAdamOptimizerConfig"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.optimizers.RAdamOptimizerConfig" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="#nerfstudio.engine.optimizers.OptimizerConfig" title="nerfstudio.engine.optimizers.OptimizerConfig"><code class="xref py py-class docutils literal notranslate"><span class="pre">OptimizerConfig</span></code></a></p>
<p>Basic optimizer config with RAdam</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.optimizers.RAdamOptimizerConfig.weight_decay">
<span class="sig-name descname"><span class="pre">weight_decay</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">float</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0</span></em><a class="headerlink" href="#nerfstudio.engine.optimizers.RAdamOptimizerConfig.weight_decay" title="Permalink to this definition">#</a></dt>
<dd><p>The weight decay to use.</p>
</dd></dl>
</dd></dl>
</section>
<section id="schedulers">
<h2>Schedulers<a class="headerlink" href="#schedulers" title="Permalink to this heading">#</a></h2>
<p>Scheduler Classes</p>
<span class="target" id="module-nerfstudio.engine.schedulers"></span><dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.CosineDecayScheduler">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.schedulers.</span></span><span class="sig-name descname"><span class="pre">CosineDecayScheduler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">config</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#nerfstudio.engine.schedulers.SchedulerConfig" title="nerfstudio.engine.schedulers.SchedulerConfig"><span class="pre">SchedulerConfig</span></a></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/schedulers.html#CosineDecayScheduler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.schedulers.CosineDecayScheduler" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="#nerfstudio.engine.schedulers.Scheduler" title="nerfstudio.engine.schedulers.Scheduler"><code class="xref py py-class docutils literal notranslate"><span class="pre">Scheduler</span></code></a></p>
<p>Cosine decay scheduler with linear warmup</p>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.CosineDecayScheduler.get_scheduler">
<span class="sig-name descname"><span class="pre">get_scheduler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">optimizer</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optimizer</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lr_init</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">LRScheduler</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/schedulers.html#CosineDecayScheduler.get_scheduler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.schedulers.CosineDecayScheduler.get_scheduler" title="Permalink to this definition">#</a></dt>
<dd><p>Abstract method that returns a scheduler object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>optimizer</strong> – The optimizer to use.</p></li>
<li><p><strong>lr_init</strong> – The initial learning rate.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The scheduler object.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.CosineDecaySchedulerConfig">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.schedulers.</span></span><span class="sig-name descname"><span class="pre">CosineDecaySchedulerConfig</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">_target:</span> <span class="pre">~typing.Type</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">warm_up_end:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">5000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">learning_rate_alpha:</span> <span class="pre">float</span> <span class="pre">=</span> <span class="pre">0.05</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_steps:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">300000</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/schedulers.html#CosineDecaySchedulerConfig"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.schedulers.CosineDecaySchedulerConfig" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="#nerfstudio.engine.schedulers.SchedulerConfig" title="nerfstudio.engine.schedulers.SchedulerConfig"><code class="xref py py-class docutils literal notranslate"><span class="pre">SchedulerConfig</span></code></a></p>
<p>Config for cosine decay schedule</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.CosineDecaySchedulerConfig.learning_rate_alpha">
<span class="sig-name descname"><span class="pre">learning_rate_alpha</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">float</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0.05</span></em><a class="headerlink" href="#nerfstudio.engine.schedulers.CosineDecaySchedulerConfig.learning_rate_alpha" title="Permalink to this definition">#</a></dt>
<dd><p>Learning rate alpha value</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.CosineDecaySchedulerConfig.max_steps">
<span class="sig-name descname"><span class="pre">max_steps</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">300000</span></em><a class="headerlink" href="#nerfstudio.engine.schedulers.CosineDecaySchedulerConfig.max_steps" title="Permalink to this definition">#</a></dt>
<dd><p>The maximum number of steps.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.CosineDecaySchedulerConfig.warm_up_end">
<span class="sig-name descname"><span class="pre">warm_up_end</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">5000</span></em><a class="headerlink" href="#nerfstudio.engine.schedulers.CosineDecaySchedulerConfig.warm_up_end" title="Permalink to this definition">#</a></dt>
<dd><p>Iteration number where warmp ends</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.ExponentialDecayScheduler">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.schedulers.</span></span><span class="sig-name descname"><span class="pre">ExponentialDecayScheduler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">config</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#nerfstudio.engine.schedulers.SchedulerConfig" title="nerfstudio.engine.schedulers.SchedulerConfig"><span class="pre">SchedulerConfig</span></a></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/schedulers.html#ExponentialDecayScheduler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.schedulers.ExponentialDecayScheduler" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="#nerfstudio.engine.schedulers.Scheduler" title="nerfstudio.engine.schedulers.Scheduler"><code class="xref py py-class docutils literal notranslate"><span class="pre">Scheduler</span></code></a></p>
<p>Exponential decay scheduler with linear warmup. Scheduler first ramps up to <cite>lr_init</cite> in <cite>warmup_steps</cite>
steps, then exponentially decays to <cite>lr_final</cite> in <cite>max_steps</cite> steps.</p>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.ExponentialDecayScheduler.get_scheduler">
<span class="sig-name descname"><span class="pre">get_scheduler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">optimizer</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optimizer</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lr_init</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">LRScheduler</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/schedulers.html#ExponentialDecayScheduler.get_scheduler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.schedulers.ExponentialDecayScheduler.get_scheduler" title="Permalink to this definition">#</a></dt>
<dd><p>Abstract method that returns a scheduler object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>optimizer</strong> – The optimizer to use.</p></li>
<li><p><strong>lr_init</strong> – The initial learning rate.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The scheduler object.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.schedulers.</span></span><span class="sig-name descname"><span class="pre">ExponentialDecaySchedulerConfig</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">_target:</span> <span class="pre">~typing.Type</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lr_pre_warmup:</span> <span class="pre">float</span> <span class="pre">=</span> <span class="pre">1e-08</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lr_final:</span> <span class="pre">~typing.Optional[float]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">warmup_steps:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_steps:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">100000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ramp:</span> <span class="pre">~typing.Literal['linear'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'cosine']</span> <span class="pre">=</span> <span class="pre">'cosine'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/schedulers.html#ExponentialDecaySchedulerConfig"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="#nerfstudio.engine.schedulers.SchedulerConfig" title="nerfstudio.engine.schedulers.SchedulerConfig"><code class="xref py py-class docutils literal notranslate"><span class="pre">SchedulerConfig</span></code></a></p>
<p>Config for exponential decay scheduler with warmup</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig.lr_final">
<span class="sig-name descname"><span class="pre">lr_final</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">float</span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig.lr_final" title="Permalink to this definition">#</a></dt>
<dd><p>Final learning rate. If not provided, it will be set to the optimizers learning rate.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig.lr_pre_warmup">
<span class="sig-name descname"><span class="pre">lr_pre_warmup</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">float</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1e-08</span></em><a class="headerlink" href="#nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig.lr_pre_warmup" title="Permalink to this definition">#</a></dt>
<dd><p>Learning rate before warmup.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig.max_steps">
<span class="sig-name descname"><span class="pre">max_steps</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">100000</span></em><a class="headerlink" href="#nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig.max_steps" title="Permalink to this definition">#</a></dt>
<dd><p>The maximum number of steps.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig.ramp">
<span class="sig-name descname"><span class="pre">ramp</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'linear'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cosine'</span></span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'cosine'</span></em><a class="headerlink" href="#nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig.ramp" title="Permalink to this definition">#</a></dt>
<dd><p>The ramp function to use during the warmup.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig.warmup_steps">
<span class="sig-name descname"><span class="pre">warmup_steps</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0</span></em><a class="headerlink" href="#nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig.warmup_steps" title="Permalink to this definition">#</a></dt>
<dd><p>Number of warmup steps.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.MultiStepScheduler">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.schedulers.</span></span><span class="sig-name descname"><span class="pre">MultiStepScheduler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">config</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#nerfstudio.engine.schedulers.SchedulerConfig" title="nerfstudio.engine.schedulers.SchedulerConfig"><span class="pre">SchedulerConfig</span></a></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/schedulers.html#MultiStepScheduler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.schedulers.MultiStepScheduler" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="#nerfstudio.engine.schedulers.Scheduler" title="nerfstudio.engine.schedulers.Scheduler"><code class="xref py py-class docutils literal notranslate"><span class="pre">Scheduler</span></code></a></p>
<p>Multi step scheduler where lr decays by gamma every milestone</p>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.MultiStepScheduler.get_scheduler">
<span class="sig-name descname"><span class="pre">get_scheduler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">optimizer</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optimizer</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lr_init</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">LRScheduler</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/schedulers.html#MultiStepScheduler.get_scheduler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.schedulers.MultiStepScheduler.get_scheduler" title="Permalink to this definition">#</a></dt>
<dd><p>Abstract method that returns a scheduler object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>optimizer</strong> – The optimizer to use.</p></li>
<li><p><strong>lr_init</strong> – The initial learning rate.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The scheduler object.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.MultiStepSchedulerConfig">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.schedulers.</span></span><span class="sig-name descname"><span class="pre">MultiStepSchedulerConfig</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">_target:</span> <span class="pre">~typing.Type</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_steps:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">1000000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gamma:</span> <span class="pre">float</span> <span class="pre">=</span> <span class="pre">0.33</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">milestones:</span> <span class="pre">~typing.Tuple[int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">...]</span> <span class="pre">=</span> <span class="pre">(500000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">750000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">900000)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/schedulers.html#MultiStepSchedulerConfig"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.schedulers.MultiStepSchedulerConfig" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="#nerfstudio.engine.schedulers.SchedulerConfig" title="nerfstudio.engine.schedulers.SchedulerConfig"><code class="xref py py-class docutils literal notranslate"><span class="pre">SchedulerConfig</span></code></a></p>
<p>Config for multi step scheduler where lr decays by gamma every milestone</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.MultiStepSchedulerConfig.gamma">
<span class="sig-name descname"><span class="pre">gamma</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">float</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">0.33</span></em><a class="headerlink" href="#nerfstudio.engine.schedulers.MultiStepSchedulerConfig.gamma" title="Permalink to this definition">#</a></dt>
<dd><p>The learning rate decay factor.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.MultiStepSchedulerConfig.max_steps">
<span class="sig-name descname"><span class="pre">max_steps</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1000000</span></em><a class="headerlink" href="#nerfstudio.engine.schedulers.MultiStepSchedulerConfig.max_steps" title="Permalink to this definition">#</a></dt>
<dd><p>The maximum number of steps.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.MultiStepSchedulerConfig.milestones">
<span class="sig-name descname"><span class="pre">milestones</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">(500000,</span> <span class="pre">750000,</span> <span class="pre">900000)</span></em><a class="headerlink" href="#nerfstudio.engine.schedulers.MultiStepSchedulerConfig.milestones" title="Permalink to this definition">#</a></dt>
<dd><p>The milestone steps at which to decay the learning rate.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.Scheduler">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.schedulers.</span></span><span class="sig-name descname"><span class="pre">Scheduler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">config</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#nerfstudio.engine.schedulers.SchedulerConfig" title="nerfstudio.engine.schedulers.SchedulerConfig"><span class="pre">SchedulerConfig</span></a></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/schedulers.html#Scheduler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.schedulers.Scheduler" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Base scheduler</p>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.Scheduler.get_scheduler">
<em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_scheduler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">optimizer</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optimizer</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lr_init</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">LRScheduler</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/schedulers.html#Scheduler.get_scheduler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.schedulers.Scheduler.get_scheduler" title="Permalink to this definition">#</a></dt>
<dd><p>Abstract method that returns a scheduler object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>optimizer</strong> – The optimizer to use.</p></li>
<li><p><strong>lr_init</strong> – The initial learning rate.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The scheduler object.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.schedulers.SchedulerConfig">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.schedulers.</span></span><span class="sig-name descname"><span class="pre">SchedulerConfig</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">_target:</span> <span class="pre">~typing.Type</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/schedulers.html#SchedulerConfig"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.schedulers.SchedulerConfig" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="config.html#nerfstudio.configs.base_config.InstantiateConfig" title="nerfstudio.configs.base_config.InstantiateConfig"><code class="xref py py-class docutils literal notranslate"><span class="pre">InstantiateConfig</span></code></a></p>
<p>Basic scheduler config</p>
</dd></dl>
</section>
<section id="trainer">
<h2>Trainer<a class="headerlink" href="#trainer" title="Permalink to this heading">#</a></h2>
<p>Code to train model.</p>
<span class="target" id="module-nerfstudio.engine.trainer"></span><dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.Trainer">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.trainer.</span></span><span class="sig-name descname"><span class="pre">Trainer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">config</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig" title="nerfstudio.engine.trainer.TrainerConfig"><span class="pre">TrainerConfig</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">local_rank</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">world_size</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/trainer.html#Trainer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.trainer.Trainer" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Trainer class</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>config</strong> – The configuration object.</p></li>
<li><p><strong>local_rank</strong> – Local rank of the process.</p></li>
<li><p><strong>world_size</strong> – World size of the process.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.Trainer.config">
<span class="sig-name descname"><span class="pre">config</span></span><a class="headerlink" href="#nerfstudio.engine.trainer.Trainer.config" title="Permalink to this definition">#</a></dt>
<dd><p>The configuration object.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.Trainer.local_rank">
<span class="sig-name descname"><span class="pre">local_rank</span></span><a class="headerlink" href="#nerfstudio.engine.trainer.Trainer.local_rank" title="Permalink to this definition">#</a></dt>
<dd><p>Local rank of the process.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.Trainer.world_size">
<span class="sig-name descname"><span class="pre">world_size</span></span><a class="headerlink" href="#nerfstudio.engine.trainer.Trainer.world_size" title="Permalink to this definition">#</a></dt>
<dd><p>World size of the process.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.Trainer.device">
<span class="sig-name descname"><span class="pre">device</span></span><a class="headerlink" href="#nerfstudio.engine.trainer.Trainer.device" title="Permalink to this definition">#</a></dt>
<dd><p>The device to run the training on.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.Trainer.pipeline">
<span class="sig-name descname"><span class="pre">pipeline</span></span><a class="headerlink" href="#nerfstudio.engine.trainer.Trainer.pipeline" title="Permalink to this definition">#</a></dt>
<dd><p>The pipeline object.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nerfstudio.pipelines.base_pipeline.VanillaPipeline</p>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.Trainer.optimizers">
<span class="sig-name descname"><span class="pre">optimizers</span></span><a class="headerlink" href="#nerfstudio.engine.trainer.Trainer.optimizers" title="Permalink to this definition">#</a></dt>
<dd><p>The optimizers object.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="#nerfstudio.engine.optimizers.Optimizers" title="nerfstudio.engine.optimizers.Optimizers">nerfstudio.engine.optimizers.Optimizers</a></p>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.Trainer.callbacks">
<span class="sig-name descname"><span class="pre">callbacks</span></span><a class="headerlink" href="#nerfstudio.engine.trainer.Trainer.callbacks" title="Permalink to this definition">#</a></dt>
<dd><p>The callbacks object.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>List[<a class="reference internal" href="#nerfstudio.engine.callbacks.TrainingCallback" title="nerfstudio.engine.callbacks.TrainingCallback">nerfstudio.engine.callbacks.TrainingCallback</a>]</p>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.Trainer.training_state">
<span class="sig-name descname"><span class="pre">training_state</span></span><a class="headerlink" href="#nerfstudio.engine.trainer.Trainer.training_state" title="Permalink to this definition">#</a></dt>
<dd><p>Current model training state.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.Trainer.setup">
<span class="sig-name descname"><span class="pre">setup</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">test_mode</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'test'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'val'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'inference'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'val'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/trainer.html#Trainer.setup"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.trainer.Trainer.setup" title="Permalink to this definition">#</a></dt>
<dd><p>Setup the Trainer by calling other setup functions.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>test_mode</strong> – ‘val’: loads train/val datasets into memory
‘test’: loads train/test datasets into memory
‘inference’: does not load any dataset into memory</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.Trainer.setup_optimizers">
<span class="sig-name descname"><span class="pre">setup_optimizers</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="#nerfstudio.engine.optimizers.Optimizers" title="nerfstudio.engine.optimizers.Optimizers"><span class="pre">Optimizers</span></a></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/trainer.html#Trainer.setup_optimizers"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.trainer.Trainer.setup_optimizers" title="Permalink to this definition">#</a></dt>
<dd><p>Helper to set up the optimizers</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>The optimizers object given the trainer config.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.Trainer.shutdown">
<span class="sig-name descname"><span class="pre">shutdown</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/trainer.html#Trainer.shutdown"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.trainer.Trainer.shutdown" title="Permalink to this definition">#</a></dt>
<dd><p>Stop the trainer and stop all associated threads/processes (such as the viewer).</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.Trainer.train">
<span class="sig-name descname"><span class="pre">train</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/trainer.html#Trainer.train"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.trainer.Trainer.train" title="Permalink to this definition">#</a></dt>
<dd><p>Train the model.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.Trainer.train_iteration">
<span class="sig-name descname"><span class="pre">train_iteration</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">step</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">Tensor</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tensor</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tensor</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/trainer.html#Trainer.train_iteration"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.trainer.Trainer.train_iteration" title="Permalink to this definition">#</a></dt>
<dd><p>Run one iteration with a batch of inputs. Returns dictionary of model losses.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>step</strong> – Current training step.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.trainer.</span></span><span class="sig-name descname"><span class="pre">TrainerConfig</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">_target:</span> <span class="pre">Type</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_dir:</span> <span class="pre">Path</span> <span class="pre">=</span> <span class="pre">PosixPath('outputs')</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">method_name:</span> <span class="pre">Optional[str]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">experiment_name:</span> <span class="pre">Optional[str]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">project_name:</span> <span class="pre">Optional[str]</span> <span class="pre">=</span> <span class="pre">'nerfstudio-project'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timestamp:</span> <span class="pre">str</span> <span class="pre">=</span> <span class="pre">'{timestamp}'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">machine:</span> <span class="pre">MachineConfig</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">logging:</span> <span class="pre">LoggingConfig</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">viewer:</span> <span class="pre">ViewerConfig</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pipeline:</span> <span class="pre">VanillaPipelineConfig</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">optimizers:</span> <span class="pre">Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Any]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">vis:</span> <span class="pre">Literal['viewer'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'wandb'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'tensorboard'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'comet'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'viewer+wandb'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'viewer+tensorboard'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'viewer+comet'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'viewer_legacy']</span> <span class="pre">=</span> <span class="pre">'wandb'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data:</span> <span class="pre">Optional[Path]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prompt:</span> <span class="pre">Optional[str]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">relative_model_dir:</span> <span class="pre">Path</span> <span class="pre">=</span> <span class="pre">PosixPath('nerfstudio_models')</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">load_scheduler:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">steps_per_save:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">1000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">steps_per_eval_batch:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">500</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">steps_per_eval_image:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">500</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">steps_per_eval_all_images:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">25000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_num_iterations:</span> <span class="pre">int</span> <span class="pre">=</span> <span class="pre">1000000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mixed_precision:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">use_grad_scaler:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_only_latest_checkpoint:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">load_dir:</span> <span class="pre">Optional[Path]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">load_step:</span> <span class="pre">Optional[int]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">load_config:</span> <span class="pre">Optional[Path]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">load_checkpoint:</span> <span class="pre">Optional[Path]</span> <span class="pre">=</span> <span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">log_gradients:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gradient_accumulation_steps:</span> <span class="pre">Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">int]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">start_paused:</span> <span class="pre">bool</span> <span class="pre">=</span> <span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/trainer.html#TrainerConfig"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">ExperimentConfig</span></code></p>
<p>Configuration for training regimen</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig.gradient_accumulation_steps">
<span class="sig-name descname"><span class="pre">gradient_accumulation_steps</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig.gradient_accumulation_steps" title="Permalink to this definition">#</a></dt>
<dd><p>num}</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>Number of steps to accumulate gradients over. Contains a mapping of {param_group</p>
</dd>
</dl>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig.load_checkpoint">
<span class="sig-name descname"><span class="pre">load_checkpoint</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Path</span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig.load_checkpoint" title="Permalink to this definition">#</a></dt>
<dd><p>Path to checkpoint file.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig.load_config">
<span class="sig-name descname"><span class="pre">load_config</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Path</span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig.load_config" title="Permalink to this definition">#</a></dt>
<dd><p>Path to config YAML file.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig.load_dir">
<span class="sig-name descname"><span class="pre">load_dir</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Path</span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig.load_dir" title="Permalink to this definition">#</a></dt>
<dd><p>Optionally specify a pre-trained model directory to load from.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig.load_step">
<span class="sig-name descname"><span class="pre">load_step</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig.load_step" title="Permalink to this definition">#</a></dt>
<dd><p>Optionally specify model step to load from; if none, will find most recent model in load_dir.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig.log_gradients">
<span class="sig-name descname"><span class="pre">log_gradients</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">bool</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig.log_gradients" title="Permalink to this definition">#</a></dt>
<dd><p>Optionally log gradients during training</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig.max_num_iterations">
<span class="sig-name descname"><span class="pre">max_num_iterations</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1000000</span></em><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig.max_num_iterations" title="Permalink to this definition">#</a></dt>
<dd><p>Maximum number of iterations to run.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig.mixed_precision">
<span class="sig-name descname"><span class="pre">mixed_precision</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">bool</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig.mixed_precision" title="Permalink to this definition">#</a></dt>
<dd><p>Whether or not to use mixed precision for training.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig.save_only_latest_checkpoint">
<span class="sig-name descname"><span class="pre">save_only_latest_checkpoint</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">bool</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">True</span></em><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig.save_only_latest_checkpoint" title="Permalink to this definition">#</a></dt>
<dd><p>Whether to only save the latest checkpoint or all checkpoints.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig.start_paused">
<span class="sig-name descname"><span class="pre">start_paused</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">bool</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig.start_paused" title="Permalink to this definition">#</a></dt>
<dd><p>Whether to start the training in a paused state.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig.steps_per_eval_all_images">
<span class="sig-name descname"><span class="pre">steps_per_eval_all_images</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">25000</span></em><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig.steps_per_eval_all_images" title="Permalink to this definition">#</a></dt>
<dd><p>Number of steps between eval all images.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig.steps_per_eval_batch">
<span class="sig-name descname"><span class="pre">steps_per_eval_batch</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">500</span></em><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig.steps_per_eval_batch" title="Permalink to this definition">#</a></dt>
<dd><p>Number of steps between randomly sampled batches of rays.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig.steps_per_eval_image">
<span class="sig-name descname"><span class="pre">steps_per_eval_image</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">500</span></em><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig.steps_per_eval_image" title="Permalink to this definition">#</a></dt>
<dd><p>Number of steps between single eval images.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig.steps_per_save">
<span class="sig-name descname"><span class="pre">steps_per_save</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1000</span></em><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig.steps_per_save" title="Permalink to this definition">#</a></dt>
<dd><p>Number of steps between saves.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.trainer.TrainerConfig.use_grad_scaler">
<span class="sig-name descname"><span class="pre">use_grad_scaler</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">bool</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">False</span></em><a class="headerlink" href="#nerfstudio.engine.trainer.TrainerConfig.use_grad_scaler" title="Permalink to this definition">#</a></dt>
<dd><p>Use gradient scaler even if the automatic mixed precision is disabled.</p>
</dd></dl>
</dd></dl>
</section>
<section id="callbacks">
<h2>Callbacks<a class="headerlink" href="#callbacks" title="Permalink to this heading">#</a></h2>
<p>Callback code used for training iterations</p>
<span class="target" id="module-nerfstudio.engine.callbacks"></span><dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.callbacks.TrainingCallback">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.callbacks.</span></span><span class="sig-name descname"><span class="pre">TrainingCallback</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">where_to_run</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#nerfstudio.engine.callbacks.TrainingCallbackLocation" title="nerfstudio.engine.callbacks.TrainingCallbackLocation"><span class="pre">TrainingCallbackLocation</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Callable</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">update_every_num_iters</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">iters</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">List</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Dict</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/callbacks.html#TrainingCallback"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.callbacks.TrainingCallback" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Callback class used during training.
The function ‘func’ with ‘args’ and ‘kwargs’ will be called every ‘update_every_num_iters’ training iterations,
including at iteration 0. The function is called after the training iteration.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>where_to_run</strong> – List of locations for when to run callback (before/after iteration)</p></li>
<li><p><strong>func</strong> – The function that will be called.</p></li>
<li><p><strong>update_every_num_iters</strong> – How often to call the function <cite>func</cite>.</p></li>
<li><p><strong>iters</strong> – Tuple of iteration steps to perform callback</p></li>
<li><p><strong>args</strong> – args for the function ‘func’.</p></li>
<li><p><strong>kwargs</strong> – kwargs for the function ‘func’.</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.callbacks.TrainingCallback.run_callback">
<span class="sig-name descname"><span class="pre">run_callback</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">step</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/callbacks.html#TrainingCallback.run_callback"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.callbacks.TrainingCallback.run_callback" title="Permalink to this definition">#</a></dt>
<dd><p>Callback to run after training step</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>step</strong> – current iteration step</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="nerfstudio.engine.callbacks.TrainingCallback.run_callback_at_location">
<span class="sig-name descname"><span class="pre">run_callback_at_location</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">step</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">location</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#nerfstudio.engine.callbacks.TrainingCallbackLocation" title="nerfstudio.engine.callbacks.TrainingCallbackLocation"><span class="pre">TrainingCallbackLocation</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/nerfstudio/engine/callbacks.html#TrainingCallback.run_callback_at_location"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.callbacks.TrainingCallback.run_callback_at_location" title="Permalink to this definition">#</a></dt>
<dd><p>Runs the callback if it’s supposed to be run at the given location.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>step</strong> – current iteration step</p></li>
<li><p><strong>location</strong> – when to run callback (before/after iteration)</p></li>
</ul>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.callbacks.TrainingCallbackAttributes">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.callbacks.</span></span><span class="sig-name descname"><span class="pre">TrainingCallbackAttributes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">optimizers</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#nerfstudio.engine.optimizers.Optimizers" title="nerfstudio.engine.optimizers.Optimizers"><span class="pre">Optimizers</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">grad_scaler</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">GradScaler</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pipeline</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'Pipeline'</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">trainer</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'Trainer'</span></span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/callbacks.html#TrainingCallbackAttributes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.callbacks.TrainingCallbackAttributes" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Attributes that can be used to configure training callbacks.
The callbacks can be specified in the Dataloader or Model implementations.
Instead of providing access to the entire Trainer object, we only provide these attributes.
This should be least prone to errors and fairly clean from a user perspective.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.callbacks.TrainingCallbackAttributes.grad_scaler">
<span class="sig-name descname"><span class="pre">grad_scaler</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">GradScaler</span><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#nerfstudio.engine.callbacks.TrainingCallbackAttributes.grad_scaler" title="Permalink to this definition">#</a></dt>
<dd><p>gradient scalers</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.callbacks.TrainingCallbackAttributes.optimizers">
<span class="sig-name descname"><span class="pre">optimizers</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#nerfstudio.engine.optimizers.Optimizers" title="nerfstudio.engine.optimizers.Optimizers"><span class="pre">Optimizers</span></a><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#nerfstudio.engine.callbacks.TrainingCallbackAttributes.optimizers" title="Permalink to this definition">#</a></dt>
<dd><p>optimizers for training</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.callbacks.TrainingCallbackAttributes.pipeline">
<span class="sig-name descname"><span class="pre">pipeline</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'Pipeline'</span></span><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#nerfstudio.engine.callbacks.TrainingCallbackAttributes.pipeline" title="Permalink to this definition">#</a></dt>
<dd><p>reference to training pipeline</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="nerfstudio.engine.callbacks.TrainingCallbackAttributes.trainer">
<span class="sig-name descname"><span class="pre">trainer</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'Trainer'</span></span><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#nerfstudio.engine.callbacks.TrainingCallbackAttributes.trainer" title="Permalink to this definition">#</a></dt>
<dd><p>reference to trainer</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="nerfstudio.engine.callbacks.TrainingCallbackLocation">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">nerfstudio.engine.callbacks.</span></span><span class="sig-name descname"><span class="pre">TrainingCallbackLocation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/nerfstudio/engine/callbacks.html#TrainingCallbackLocation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#nerfstudio.engine.callbacks.TrainingCallbackLocation" title="Permalink to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></p>
<p>Enum for specifying where the training callback should be run.</p>
</dd></dl>
</section>
</section>
</article>
</div>
<footer>
<div class="related-pages">
<a class="next-page" href="plugins.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">Plugins</div>
</div>
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="model_components/renderers.html">
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">Renderers</div>
</div>
</a>
</div>
<div class="bottom-of-page">
<div class="left-details">
<div class="copyright">
Copyright &#169; 2022, nerfstudio Team
</div>
Made with <a href="https://www.sphinx-doc.org/">Sphinx</a> and <a class="muted-link" href="https://pradyunsg.me">@pradyunsg</a>'s
<a href="https://github.com/pradyunsg/furo">Furo</a>
</div>
<div class="right-details">
<div class="icons">
</div>
</div>
</div>
</footer>
</div>
<aside class="toc-drawer">
<div class="toc-sticky toc-scroll">
<div class="toc-title-container">
<span class="toc-title">
On this page
</span>
</div>
<div class="toc-tree-container">
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">Engine</a><ul>
<li><a class="reference internal" href="#optimizers">Optimizers</a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.AdamOptimizerConfig"><code class="docutils literal notranslate"><span class="pre">AdamOptimizerConfig</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.AdamOptimizerConfig.weight_decay"><code class="docutils literal notranslate"><span class="pre">AdamOptimizerConfig.weight_decay</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.OptimizerConfig"><code class="docutils literal notranslate"><span class="pre">OptimizerConfig</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.OptimizerConfig.eps"><code class="docutils literal notranslate"><span class="pre">OptimizerConfig.eps</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.OptimizerConfig.lr"><code class="docutils literal notranslate"><span class="pre">OptimizerConfig.lr</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.OptimizerConfig.max_norm"><code class="docutils literal notranslate"><span class="pre">OptimizerConfig.max_norm</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.OptimizerConfig.setup"><code class="docutils literal notranslate"><span class="pre">OptimizerConfig.setup()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.Optimizers"><code class="docutils literal notranslate"><span class="pre">Optimizers</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.Optimizers.load_optimizers"><code class="docutils literal notranslate"><span class="pre">Optimizers.load_optimizers()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.Optimizers.load_schedulers"><code class="docutils literal notranslate"><span class="pre">Optimizers.load_schedulers()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.Optimizers.optimizer_scaler_step_all"><code class="docutils literal notranslate"><span class="pre">Optimizers.optimizer_scaler_step_all()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.Optimizers.optimizer_scaler_step_some"><code class="docutils literal notranslate"><span class="pre">Optimizers.optimizer_scaler_step_some()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.Optimizers.optimizer_step"><code class="docutils literal notranslate"><span class="pre">Optimizers.optimizer_step()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.Optimizers.optimizer_step_all"><code class="docutils literal notranslate"><span class="pre">Optimizers.optimizer_step_all()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.Optimizers.scheduler_step"><code class="docutils literal notranslate"><span class="pre">Optimizers.scheduler_step()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.Optimizers.scheduler_step_all"><code class="docutils literal notranslate"><span class="pre">Optimizers.scheduler_step_all()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.Optimizers.zero_grad_all"><code class="docutils literal notranslate"><span class="pre">Optimizers.zero_grad_all()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.Optimizers.zero_grad_some"><code class="docutils literal notranslate"><span class="pre">Optimizers.zero_grad_some()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.RAdamOptimizerConfig"><code class="docutils literal notranslate"><span class="pre">RAdamOptimizerConfig</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.optimizers.RAdamOptimizerConfig.weight_decay"><code class="docutils literal notranslate"><span class="pre">RAdamOptimizerConfig.weight_decay</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#schedulers">Schedulers</a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.CosineDecayScheduler"><code class="docutils literal notranslate"><span class="pre">CosineDecayScheduler</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.CosineDecayScheduler.get_scheduler"><code class="docutils literal notranslate"><span class="pre">CosineDecayScheduler.get_scheduler()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.CosineDecaySchedulerConfig"><code class="docutils literal notranslate"><span class="pre">CosineDecaySchedulerConfig</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.CosineDecaySchedulerConfig.learning_rate_alpha"><code class="docutils literal notranslate"><span class="pre">CosineDecaySchedulerConfig.learning_rate_alpha</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.CosineDecaySchedulerConfig.max_steps"><code class="docutils literal notranslate"><span class="pre">CosineDecaySchedulerConfig.max_steps</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.CosineDecaySchedulerConfig.warm_up_end"><code class="docutils literal notranslate"><span class="pre">CosineDecaySchedulerConfig.warm_up_end</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.ExponentialDecayScheduler"><code class="docutils literal notranslate"><span class="pre">ExponentialDecayScheduler</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.ExponentialDecayScheduler.get_scheduler"><code class="docutils literal notranslate"><span class="pre">ExponentialDecayScheduler.get_scheduler()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig"><code class="docutils literal notranslate"><span class="pre">ExponentialDecaySchedulerConfig</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig.lr_final"><code class="docutils literal notranslate"><span class="pre">ExponentialDecaySchedulerConfig.lr_final</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig.lr_pre_warmup"><code class="docutils literal notranslate"><span class="pre">ExponentialDecaySchedulerConfig.lr_pre_warmup</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig.max_steps"><code class="docutils literal notranslate"><span class="pre">ExponentialDecaySchedulerConfig.max_steps</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig.ramp"><code class="docutils literal notranslate"><span class="pre">ExponentialDecaySchedulerConfig.ramp</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.ExponentialDecaySchedulerConfig.warmup_steps"><code class="docutils literal notranslate"><span class="pre">ExponentialDecaySchedulerConfig.warmup_steps</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.MultiStepScheduler"><code class="docutils literal notranslate"><span class="pre">MultiStepScheduler</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.MultiStepScheduler.get_scheduler"><code class="docutils literal notranslate"><span class="pre">MultiStepScheduler.get_scheduler()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.MultiStepSchedulerConfig"><code class="docutils literal notranslate"><span class="pre">MultiStepSchedulerConfig</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.MultiStepSchedulerConfig.gamma"><code class="docutils literal notranslate"><span class="pre">MultiStepSchedulerConfig.gamma</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.MultiStepSchedulerConfig.max_steps"><code class="docutils literal notranslate"><span class="pre">MultiStepSchedulerConfig.max_steps</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.MultiStepSchedulerConfig.milestones"><code class="docutils literal notranslate"><span class="pre">MultiStepSchedulerConfig.milestones</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.Scheduler"><code class="docutils literal notranslate"><span class="pre">Scheduler</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.Scheduler.get_scheduler"><code class="docutils literal notranslate"><span class="pre">Scheduler.get_scheduler()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.engine.schedulers.SchedulerConfig"><code class="docutils literal notranslate"><span class="pre">SchedulerConfig</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#trainer">Trainer</a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.Trainer"><code class="docutils literal notranslate"><span class="pre">Trainer</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.Trainer.config"><code class="docutils literal notranslate"><span class="pre">Trainer.config</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.Trainer.local_rank"><code class="docutils literal notranslate"><span class="pre">Trainer.local_rank</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.Trainer.world_size"><code class="docutils literal notranslate"><span class="pre">Trainer.world_size</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.Trainer.device"><code class="docutils literal notranslate"><span class="pre">Trainer.device</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.Trainer.pipeline"><code class="docutils literal notranslate"><span class="pre">Trainer.pipeline</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.Trainer.optimizers"><code class="docutils literal notranslate"><span class="pre">Trainer.optimizers</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.Trainer.callbacks"><code class="docutils literal notranslate"><span class="pre">Trainer.callbacks</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.Trainer.training_state"><code class="docutils literal notranslate"><span class="pre">Trainer.training_state</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.Trainer.setup"><code class="docutils literal notranslate"><span class="pre">Trainer.setup()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.Trainer.setup_optimizers"><code class="docutils literal notranslate"><span class="pre">Trainer.setup_optimizers()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.Trainer.shutdown"><code class="docutils literal notranslate"><span class="pre">Trainer.shutdown()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.Trainer.train"><code class="docutils literal notranslate"><span class="pre">Trainer.train()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.Trainer.train_iteration"><code class="docutils literal notranslate"><span class="pre">Trainer.train_iteration()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig"><code class="docutils literal notranslate"><span class="pre">TrainerConfig</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig.gradient_accumulation_steps"><code class="docutils literal notranslate"><span class="pre">TrainerConfig.gradient_accumulation_steps</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig.load_checkpoint"><code class="docutils literal notranslate"><span class="pre">TrainerConfig.load_checkpoint</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig.load_config"><code class="docutils literal notranslate"><span class="pre">TrainerConfig.load_config</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig.load_dir"><code class="docutils literal notranslate"><span class="pre">TrainerConfig.load_dir</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig.load_step"><code class="docutils literal notranslate"><span class="pre">TrainerConfig.load_step</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig.log_gradients"><code class="docutils literal notranslate"><span class="pre">TrainerConfig.log_gradients</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig.max_num_iterations"><code class="docutils literal notranslate"><span class="pre">TrainerConfig.max_num_iterations</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig.mixed_precision"><code class="docutils literal notranslate"><span class="pre">TrainerConfig.mixed_precision</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig.save_only_latest_checkpoint"><code class="docutils literal notranslate"><span class="pre">TrainerConfig.save_only_latest_checkpoint</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig.start_paused"><code class="docutils literal notranslate"><span class="pre">TrainerConfig.start_paused</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig.steps_per_eval_all_images"><code class="docutils literal notranslate"><span class="pre">TrainerConfig.steps_per_eval_all_images</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig.steps_per_eval_batch"><code class="docutils literal notranslate"><span class="pre">TrainerConfig.steps_per_eval_batch</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig.steps_per_eval_image"><code class="docutils literal notranslate"><span class="pre">TrainerConfig.steps_per_eval_image</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig.steps_per_save"><code class="docutils literal notranslate"><span class="pre">TrainerConfig.steps_per_save</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.trainer.TrainerConfig.use_grad_scaler"><code class="docutils literal notranslate"><span class="pre">TrainerConfig.use_grad_scaler</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#callbacks">Callbacks</a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.callbacks.TrainingCallback"><code class="docutils literal notranslate"><span class="pre">TrainingCallback</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.callbacks.TrainingCallback.run_callback"><code class="docutils literal notranslate"><span class="pre">TrainingCallback.run_callback()</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.callbacks.TrainingCallback.run_callback_at_location"><code class="docutils literal notranslate"><span class="pre">TrainingCallback.run_callback_at_location()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.engine.callbacks.TrainingCallbackAttributes"><code class="docutils literal notranslate"><span class="pre">TrainingCallbackAttributes</span></code></a><ul>
<li><a class="reference internal" href="#nerfstudio.engine.callbacks.TrainingCallbackAttributes.grad_scaler"><code class="docutils literal notranslate"><span class="pre">TrainingCallbackAttributes.grad_scaler</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.callbacks.TrainingCallbackAttributes.optimizers"><code class="docutils literal notranslate"><span class="pre">TrainingCallbackAttributes.optimizers</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.callbacks.TrainingCallbackAttributes.pipeline"><code class="docutils literal notranslate"><span class="pre">TrainingCallbackAttributes.pipeline</span></code></a></li>
<li><a class="reference internal" href="#nerfstudio.engine.callbacks.TrainingCallbackAttributes.trainer"><code class="docutils literal notranslate"><span class="pre">TrainingCallbackAttributes.trainer</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#nerfstudio.engine.callbacks.TrainingCallbackLocation"><code class="docutils literal notranslate"><span class="pre">TrainingCallbackLocation</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</aside>
</div>
</div></body>
</html>