draugr.torch_utilities.architectures.architecture.Architecture.html 162 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
  6. <title>draugr.torch_utilities.architectures.architecture.Architecture &#8212; Draugr 1.0.1 documentation</title>
  7. <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
  8. <link rel="stylesheet" type="text/css" href="../_static/alabaster.css" />
  9. <link rel="stylesheet" type="text/css" href="../_static/graphviz.css" />
  10. <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
  11. <script src="../_static/jquery.js"></script>
  12. <script src="../_static/underscore.js"></script>
  13. <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
  14. <script src="../_static/doctools.js"></script>
  15. <link rel="canonical" href="pything.github.io/draugr/generated/draugr.torch_utilities.architectures.architecture.Architecture.html" />
  16. <link rel="index" title="Index" href="../genindex.html" />
  17. <link rel="search" title="Search" href="../search.html" />
  18. <link rel="next" title="draugr.torch_utilities.architectures.distributional" href="draugr.torch_utilities.architectures.distributional.html" />
  19. <link rel="prev" title="draugr.torch_utilities.architectures.architecture" href="draugr.torch_utilities.architectures.architecture.html" />
  20. <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
  21. <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
  22. </head><body>
  23. <div class="document">
  24. <div class="documentwrapper">
  25. <div class="bodywrapper">
  26. <div class="body" role="main">
  27. <section id="draugr-torch-utilities-architectures-architecture-architecture">
  28. <h1>draugr.torch_utilities.architectures.architecture.Architecture<a class="headerlink" href="#draugr-torch-utilities-architectures-architecture-architecture" title="Permalink to this heading">¶</a></h1>
  29. <dl class="py class">
  30. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture">
  31. <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">draugr.torch_utilities.architectures.architecture.</span></span><span class="sig-name descname"><span class="pre">Architecture</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_shape</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Sequence" title="(in Python v3.10)"><span class="pre">Sequence</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.10)"><span class="pre">int</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_shape</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Sequence" title="(in Python v3.10)"><span class="pre">Sequence</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.10)"><span class="pre">int</span></a><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/draugr/torch_utilities/architectures/architecture.html#Architecture"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture" title="Permalink to this definition">¶</a></dt>
  32. <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Module</span></code>, <a class="reference external" href="https://docs.python.org/3/library/abc.html#abc.ABC" title="(in Python v3.10)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ABC</span></code></a></p>
  33. <p>description</p>
  34. <dl class="py method">
  35. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.__init__">
  36. <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_shape</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Sequence" title="(in Python v3.10)"><span class="pre">Sequence</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.10)"><span class="pre">int</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_shape</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Sequence" title="(in Python v3.10)"><span class="pre">Sequence</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.10)"><span class="pre">int</span></a><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/draugr/torch_utilities/architectures/architecture.html#Architecture.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.__init__" title="Permalink to this definition">¶</a></dt>
  37. <dd><p>Initializes internal Module state, shared by both nn.Module and ScriptModule.</p>
  38. </dd></dl>
  39. <p class="rubric">Methods</p>
  40. <table class="autosummary longtable docutils align-default">
  41. <colgroup>
  42. <col style="width: 10%" />
  43. <col style="width: 90%" />
  44. </colgroup>
  45. <tbody>
  46. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.__init__" title="draugr.torch_utilities.architectures.architecture.Architecture.__init__"><code class="xref py py-obj docutils literal notranslate"><span class="pre">__init__</span></code></a>(input_shape, output_shape)</p></td>
  47. <td><p>Initializes internal Module state, shared by both nn.Module and ScriptModule.</p></td>
  48. </tr>
  49. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.add_module" title="draugr.torch_utilities.architectures.architecture.Architecture.add_module"><code class="xref py py-obj docutils literal notranslate"><span class="pre">add_module</span></code></a>(name, module)</p></td>
  50. <td><p>Adds a child module to the current module.</p></td>
  51. </tr>
  52. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.apply" title="draugr.torch_utilities.architectures.architecture.Architecture.apply"><code class="xref py py-obj docutils literal notranslate"><span class="pre">apply</span></code></a>(fn)</p></td>
  53. <td><p>Applies <code class="docutils literal notranslate"><span class="pre">fn</span></code> recursively to every submodule (as returned by <code class="docutils literal notranslate"><span class="pre">.children()</span></code>) as well as self.</p></td>
  54. </tr>
  55. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.bfloat16" title="draugr.torch_utilities.architectures.architecture.Architecture.bfloat16"><code class="xref py py-obj docutils literal notranslate"><span class="pre">bfloat16</span></code></a>()</p></td>
  56. <td><p>Casts all floating point parameters and buffers to <code class="docutils literal notranslate"><span class="pre">bfloat16</span></code> datatype.</p></td>
  57. </tr>
  58. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.buffers" title="draugr.torch_utilities.architectures.architecture.Architecture.buffers"><code class="xref py py-obj docutils literal notranslate"><span class="pre">buffers</span></code></a>([recurse])</p></td>
  59. <td><p>Returns an iterator over module buffers.</p></td>
  60. </tr>
  61. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.children" title="draugr.torch_utilities.architectures.architecture.Architecture.children"><code class="xref py py-obj docutils literal notranslate"><span class="pre">children</span></code></a>()</p></td>
  62. <td><p>Returns an iterator over immediate children modules.</p></td>
  63. </tr>
  64. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.cpu" title="draugr.torch_utilities.architectures.architecture.Architecture.cpu"><code class="xref py py-obj docutils literal notranslate"><span class="pre">cpu</span></code></a>()</p></td>
  65. <td><p>Moves all model parameters and buffers to the CPU.</p></td>
  66. </tr>
  67. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.cuda" title="draugr.torch_utilities.architectures.architecture.Architecture.cuda"><code class="xref py py-obj docutils literal notranslate"><span class="pre">cuda</span></code></a>([device])</p></td>
  68. <td><p>Moves all model parameters and buffers to the GPU.</p></td>
  69. </tr>
  70. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.double" title="draugr.torch_utilities.architectures.architecture.Architecture.double"><code class="xref py py-obj docutils literal notranslate"><span class="pre">double</span></code></a>()</p></td>
  71. <td><p>Casts all floating point parameters and buffers to <code class="docutils literal notranslate"><span class="pre">double</span></code> datatype.</p></td>
  72. </tr>
  73. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.eval" title="draugr.torch_utilities.architectures.architecture.Architecture.eval"><code class="xref py py-obj docutils literal notranslate"><span class="pre">eval</span></code></a>()</p></td>
  74. <td><p>Sets the module in evaluation mode.</p></td>
  75. </tr>
  76. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.extra_repr" title="draugr.torch_utilities.architectures.architecture.Architecture.extra_repr"><code class="xref py py-obj docutils literal notranslate"><span class="pre">extra_repr</span></code></a>()</p></td>
  77. <td><p>Set the extra representation of the module</p></td>
  78. </tr>
  79. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.float" title="draugr.torch_utilities.architectures.architecture.Architecture.float"><code class="xref py py-obj docutils literal notranslate"><span class="pre">float</span></code></a>()</p></td>
  80. <td><p>Casts all floating point parameters and buffers to <code class="docutils literal notranslate"><span class="pre">float</span></code> datatype.</p></td>
  81. </tr>
  82. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.forward" title="draugr.torch_utilities.architectures.architecture.Architecture.forward"><code class="xref py py-obj docutils literal notranslate"><span class="pre">forward</span></code></a>(*input)</p></td>
  83. <td><p>Defines the computation performed at every call.</p></td>
  84. </tr>
  85. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.get_buffer" title="draugr.torch_utilities.architectures.architecture.Architecture.get_buffer"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_buffer</span></code></a>(target)</p></td>
  86. <td><p>Returns the buffer given by <code class="docutils literal notranslate"><span class="pre">target</span></code> if it exists, otherwise throws an error.</p></td>
  87. </tr>
  88. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.get_extra_state" title="draugr.torch_utilities.architectures.architecture.Architecture.get_extra_state"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_extra_state</span></code></a>()</p></td>
  89. <td><p>Returns any extra state to include in the module's state_dict.</p></td>
  90. </tr>
  91. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.get_parameter" title="draugr.torch_utilities.architectures.architecture.Architecture.get_parameter"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_parameter</span></code></a>(target)</p></td>
  92. <td><p>Returns the parameter given by <code class="docutils literal notranslate"><span class="pre">target</span></code> if it exists, otherwise throws an error.</p></td>
  93. </tr>
  94. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.get_submodule" title="draugr.torch_utilities.architectures.architecture.Architecture.get_submodule"><code class="xref py py-obj docutils literal notranslate"><span class="pre">get_submodule</span></code></a>(target)</p></td>
  95. <td><p>Returns the submodule given by <code class="docutils literal notranslate"><span class="pre">target</span></code> if it exists, otherwise throws an error.</p></td>
  96. </tr>
  97. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.half" title="draugr.torch_utilities.architectures.architecture.Architecture.half"><code class="xref py py-obj docutils literal notranslate"><span class="pre">half</span></code></a>()</p></td>
  98. <td><p>Casts all floating point parameters and buffers to <code class="docutils literal notranslate"><span class="pre">half</span></code> datatype.</p></td>
  99. </tr>
  100. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.ipu" title="draugr.torch_utilities.architectures.architecture.Architecture.ipu"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ipu</span></code></a>([device])</p></td>
  101. <td><p>Moves all model parameters and buffers to the IPU.</p></td>
  102. </tr>
  103. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.load_state_dict" title="draugr.torch_utilities.architectures.architecture.Architecture.load_state_dict"><code class="xref py py-obj docutils literal notranslate"><span class="pre">load_state_dict</span></code></a>(state_dict[, strict])</p></td>
  104. <td><p>Copies parameters and buffers from <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.state_dict" title="draugr.torch_utilities.architectures.architecture.Architecture.state_dict"><code class="xref py py-attr docutils literal notranslate"><span class="pre">state_dict</span></code></a> into this module and its descendants.</p></td>
  105. </tr>
  106. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.modules" title="draugr.torch_utilities.architectures.architecture.Architecture.modules"><code class="xref py py-obj docutils literal notranslate"><span class="pre">modules</span></code></a>()</p></td>
  107. <td><p>Returns an iterator over all modules in the network.</p></td>
  108. </tr>
  109. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.named_buffers" title="draugr.torch_utilities.architectures.architecture.Architecture.named_buffers"><code class="xref py py-obj docutils literal notranslate"><span class="pre">named_buffers</span></code></a>([prefix, recurse])</p></td>
  110. <td><p>Returns an iterator over module buffers, yielding both the name of the buffer as well as the buffer itself.</p></td>
  111. </tr>
  112. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.named_children" title="draugr.torch_utilities.architectures.architecture.Architecture.named_children"><code class="xref py py-obj docutils literal notranslate"><span class="pre">named_children</span></code></a>()</p></td>
  113. <td><p>Returns an iterator over immediate children modules, yielding both the name of the module as well as the module itself.</p></td>
  114. </tr>
  115. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.named_modules" title="draugr.torch_utilities.architectures.architecture.Architecture.named_modules"><code class="xref py py-obj docutils literal notranslate"><span class="pre">named_modules</span></code></a>([memo, prefix, remove_duplicate])</p></td>
  116. <td><p>Returns an iterator over all modules in the network, yielding both the name of the module as well as the module itself.</p></td>
  117. </tr>
  118. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.named_parameters" title="draugr.torch_utilities.architectures.architecture.Architecture.named_parameters"><code class="xref py py-obj docutils literal notranslate"><span class="pre">named_parameters</span></code></a>([prefix, recurse])</p></td>
  119. <td><p>Returns an iterator over module parameters, yielding both the name of the parameter as well as the parameter itself.</p></td>
  120. </tr>
  121. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.parameters" title="draugr.torch_utilities.architectures.architecture.Architecture.parameters"><code class="xref py py-obj docutils literal notranslate"><span class="pre">parameters</span></code></a>([recurse])</p></td>
  122. <td><p>Returns an iterator over module parameters.</p></td>
  123. </tr>
  124. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_backward_hook" title="draugr.torch_utilities.architectures.architecture.Architecture.register_backward_hook"><code class="xref py py-obj docutils literal notranslate"><span class="pre">register_backward_hook</span></code></a>(hook)</p></td>
  125. <td><p>Registers a backward hook on the module.</p></td>
  126. </tr>
  127. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_buffer" title="draugr.torch_utilities.architectures.architecture.Architecture.register_buffer"><code class="xref py py-obj docutils literal notranslate"><span class="pre">register_buffer</span></code></a>(name, tensor[, persistent])</p></td>
  128. <td><p>Adds a buffer to the module.</p></td>
  129. </tr>
  130. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_forward_hook" title="draugr.torch_utilities.architectures.architecture.Architecture.register_forward_hook"><code class="xref py py-obj docutils literal notranslate"><span class="pre">register_forward_hook</span></code></a>(hook)</p></td>
  131. <td><p>Registers a forward hook on the module.</p></td>
  132. </tr>
  133. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_forward_pre_hook" title="draugr.torch_utilities.architectures.architecture.Architecture.register_forward_pre_hook"><code class="xref py py-obj docutils literal notranslate"><span class="pre">register_forward_pre_hook</span></code></a>(hook)</p></td>
  134. <td><p>Registers a forward pre-hook on the module.</p></td>
  135. </tr>
  136. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_full_backward_hook" title="draugr.torch_utilities.architectures.architecture.Architecture.register_full_backward_hook"><code class="xref py py-obj docutils literal notranslate"><span class="pre">register_full_backward_hook</span></code></a>(hook)</p></td>
  137. <td><p>Registers a backward hook on the module.</p></td>
  138. </tr>
  139. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_load_state_dict_post_hook" title="draugr.torch_utilities.architectures.architecture.Architecture.register_load_state_dict_post_hook"><code class="xref py py-obj docutils literal notranslate"><span class="pre">register_load_state_dict_post_hook</span></code></a>(hook)</p></td>
  140. <td><p>Registers a post hook to be run after module's <code class="docutils literal notranslate"><span class="pre">load_state_dict</span></code> is called.</p></td>
  141. </tr>
  142. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_module" title="draugr.torch_utilities.architectures.architecture.Architecture.register_module"><code class="xref py py-obj docutils literal notranslate"><span class="pre">register_module</span></code></a>(name, module)</p></td>
  143. <td><p>Alias for <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.add_module" title="draugr.torch_utilities.architectures.architecture.Architecture.add_module"><code class="xref py py-func docutils literal notranslate"><span class="pre">add_module()</span></code></a>.</p></td>
  144. </tr>
  145. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_parameter" title="draugr.torch_utilities.architectures.architecture.Architecture.register_parameter"><code class="xref py py-obj docutils literal notranslate"><span class="pre">register_parameter</span></code></a>(name, param)</p></td>
  146. <td><p>Adds a parameter to the module.</p></td>
  147. </tr>
  148. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.requires_grad_" title="draugr.torch_utilities.architectures.architecture.Architecture.requires_grad_"><code class="xref py py-obj docutils literal notranslate"><span class="pre">requires_grad_</span></code></a>([requires_grad])</p></td>
  149. <td><p>Change if autograd should record operations on parameters in this module.</p></td>
  150. </tr>
  151. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.sample_input" title="draugr.torch_utilities.architectures.architecture.Architecture.sample_input"><code class="xref py py-obj docutils literal notranslate"><span class="pre">sample_input</span></code></a>()</p></td>
  152. <td><p><dl class="field-list simple">
  153. <dt class="field-odd">return</dt>
  154. <dd class="field-odd"><p></p></dd>
  155. </dl>
  156. </p></td>
  157. </tr>
  158. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.set_extra_state" title="draugr.torch_utilities.architectures.architecture.Architecture.set_extra_state"><code class="xref py py-obj docutils literal notranslate"><span class="pre">set_extra_state</span></code></a>(state)</p></td>
  159. <td><p>This function is called from <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.load_state_dict" title="draugr.torch_utilities.architectures.architecture.Architecture.load_state_dict"><code class="xref py py-func docutils literal notranslate"><span class="pre">load_state_dict()</span></code></a> to handle any extra state found within the <cite>state_dict</cite>.</p></td>
  160. </tr>
  161. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.share_memory" title="draugr.torch_utilities.architectures.architecture.Architecture.share_memory"><code class="xref py py-obj docutils literal notranslate"><span class="pre">share_memory</span></code></a>()</p></td>
  162. <td><p>See <code class="xref py py-meth docutils literal notranslate"><span class="pre">torch.Tensor.share_memory_()</span></code></p></td>
  163. </tr>
  164. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.state_dict" title="draugr.torch_utilities.architectures.architecture.Architecture.state_dict"><code class="xref py py-obj docutils literal notranslate"><span class="pre">state_dict</span></code></a>(*args[, destination, prefix, ...])</p></td>
  165. <td><p>Returns a dictionary containing a whole state of the module.</p></td>
  166. </tr>
  167. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.to" title="draugr.torch_utilities.architectures.architecture.Architecture.to"><code class="xref py py-obj docutils literal notranslate"><span class="pre">to</span></code></a>(*args, **kwargs)</p></td>
  168. <td><p>Moves and/or casts the parameters and buffers.</p></td>
  169. </tr>
  170. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.to_empty" title="draugr.torch_utilities.architectures.architecture.Architecture.to_empty"><code class="xref py py-obj docutils literal notranslate"><span class="pre">to_empty</span></code></a>(*, device)</p></td>
  171. <td><p>Moves the parameters and buffers to the specified device without copying storage.</p></td>
  172. </tr>
  173. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.train" title="draugr.torch_utilities.architectures.architecture.Architecture.train"><code class="xref py py-obj docutils literal notranslate"><span class="pre">train</span></code></a>([mode])</p></td>
  174. <td><p>Sets the module in training mode.</p></td>
  175. </tr>
  176. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.type" title="draugr.torch_utilities.architectures.architecture.Architecture.type"><code class="xref py py-obj docutils literal notranslate"><span class="pre">type</span></code></a>(dst_type)</p></td>
  177. <td><p>Casts all parameters and buffers to <code class="xref py py-attr docutils literal notranslate"><span class="pre">dst_type</span></code>.</p></td>
  178. </tr>
  179. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.xpu" title="draugr.torch_utilities.architectures.architecture.Architecture.xpu"><code class="xref py py-obj docutils literal notranslate"><span class="pre">xpu</span></code></a>([device])</p></td>
  180. <td><p>Moves all model parameters and buffers to the XPU.</p></td>
  181. </tr>
  182. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.zero_grad" title="draugr.torch_utilities.architectures.architecture.Architecture.zero_grad"><code class="xref py py-obj docutils literal notranslate"><span class="pre">zero_grad</span></code></a>([set_to_none])</p></td>
  183. <td><p>Sets gradients of all model parameters to zero.</p></td>
  184. </tr>
  185. </tbody>
  186. </table>
  187. <p class="rubric">Attributes</p>
  188. <table class="autosummary longtable docutils align-default">
  189. <colgroup>
  190. <col style="width: 10%" />
  191. <col style="width: 90%" />
  192. </colgroup>
  193. <tbody>
  194. <tr class="row-odd"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">T_destination</span></code></p></td>
  195. <td><p>alias of TypeVar('T_destination', bound=<a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Dict" title="(in Python v3.10)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Dict</span></code></a>[<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.10)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Any</span></code></a>])</p></td>
  196. </tr>
  197. <tr class="row-even"><td><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">dump_patches</span></code></p></td>
  198. <td><p></p></td>
  199. </tr>
  200. <tr class="row-odd"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.input_shape" title="draugr.torch_utilities.architectures.architecture.Architecture.input_shape"><code class="xref py py-obj docutils literal notranslate"><span class="pre">input_shape</span></code></a></p></td>
  201. <td><p>return: :rtype:</p></td>
  202. </tr>
  203. <tr class="row-even"><td><p><a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.output_shape" title="draugr.torch_utilities.architectures.architecture.Architecture.output_shape"><code class="xref py py-obj docutils literal notranslate"><span class="pre">output_shape</span></code></a></p></td>
  204. <td><p>return: :rtype:</p></td>
  205. </tr>
  206. </tbody>
  207. </table>
  208. <dl class="py method">
  209. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.add_module">
  210. <span class="sig-name descname"><span class="pre">add_module</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">module</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Optional" title="(in Python v3.10)"><span class="pre">Optional</span></a><span class="p"><span class="pre">[</span></span><span class="pre">Module</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"><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.10)"><span class="pre">None</span></a></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.add_module" title="Permalink to this definition">¶</a></dt>
  211. <dd><p>Adds a child module to the current module.</p>
  212. <p>The module can be accessed as an attribute using the given name.</p>
  213. <dl class="field-list simple">
  214. <dt class="field-odd">Parameters</dt>
  215. <dd class="field-odd"><ul class="simple">
  216. <li><p><strong>name</strong> (<em>string</em>) – name of the child module. The child module can be
  217. accessed from this module using the given name</p></li>
  218. <li><p><strong>module</strong> (<em>Module</em>) – child module to be added to the module.</p></li>
  219. </ul>
  220. </dd>
  221. </dl>
  222. </dd></dl>
  223. <dl class="py method">
  224. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.apply">
  225. <span class="sig-name descname"><span class="pre">apply</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">fn</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.10)"><span class="pre">Callable</span></a><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="pre">Module</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.10)"><span class="pre">None</span></a><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">T</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.apply" title="Permalink to this definition">¶</a></dt>
  226. <dd><p>Applies <code class="docutils literal notranslate"><span class="pre">fn</span></code> recursively to every submodule (as returned by <code class="docutils literal notranslate"><span class="pre">.children()</span></code>)
  227. as well as self. Typical use includes initializing the parameters of a model
  228. (see also <span class="xref std std-ref">nn-init-doc</span>).</p>
  229. <dl class="field-list simple">
  230. <dt class="field-odd">Parameters</dt>
  231. <dd class="field-odd"><p><strong>fn</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">Module</span></code> -&gt; None) – function to be applied to each submodule</p>
  232. </dd>
  233. <dt class="field-even">Returns</dt>
  234. <dd class="field-even"><p>self</p>
  235. </dd>
  236. <dt class="field-odd">Return type</dt>
  237. <dd class="field-odd"><p>Module</p>
  238. </dd>
  239. </dl>
  240. <p>Example:</p>
  241. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="nd">@torch</span><span class="o">.</span><span class="n">no_grad</span><span class="p">()</span>
  242. <span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">init_weights</span><span class="p">(</span><span class="n">m</span><span class="p">):</span>
  243. <span class="gp">&gt;&gt;&gt; </span> <span class="nb">print</span><span class="p">(</span><span class="n">m</span><span class="p">)</span>
  244. <span class="gp">&gt;&gt;&gt; </span> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> <span class="o">==</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">:</span>
  245. <span class="gp">&gt;&gt;&gt; </span> <span class="n">m</span><span class="o">.</span><span class="n">weight</span><span class="o">.</span><span class="n">fill_</span><span class="p">(</span><span class="mf">1.0</span><span class="p">)</span>
  246. <span class="gp">&gt;&gt;&gt; </span> <span class="nb">print</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">weight</span><span class="p">)</span>
  247. <span class="gp">&gt;&gt;&gt; </span><span class="n">net</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Sequential</span><span class="p">(</span><span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
  248. <span class="gp">&gt;&gt;&gt; </span><span class="n">net</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="n">init_weights</span><span class="p">)</span>
  249. <span class="go">Linear(in_features=2, out_features=2, bias=True)</span>
  250. <span class="go">Parameter containing:</span>
  251. <span class="go">tensor([[ 1., 1.],</span>
  252. <span class="go"> [ 1., 1.]])</span>
  253. <span class="go">Linear(in_features=2, out_features=2, bias=True)</span>
  254. <span class="go">Parameter containing:</span>
  255. <span class="go">tensor([[ 1., 1.],</span>
  256. <span class="go"> [ 1., 1.]])</span>
  257. <span class="go">Sequential(</span>
  258. <span class="go"> (0): Linear(in_features=2, out_features=2, bias=True)</span>
  259. <span class="go"> (1): Linear(in_features=2, out_features=2, bias=True)</span>
  260. <span class="go">)</span>
  261. <span class="go">Sequential(</span>
  262. <span class="go"> (0): Linear(in_features=2, out_features=2, bias=True)</span>
  263. <span class="go"> (1): Linear(in_features=2, out_features=2, bias=True)</span>
  264. <span class="go">)</span>
  265. </pre></div>
  266. </div>
  267. </dd></dl>
  268. <dl class="py method">
  269. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.bfloat16">
  270. <span class="sig-name descname"><span class="pre">bfloat16</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">T</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.bfloat16" title="Permalink to this definition">¶</a></dt>
  271. <dd><p>Casts all floating point parameters and buffers to <code class="docutils literal notranslate"><span class="pre">bfloat16</span></code> datatype.</p>
  272. <div class="admonition note">
  273. <p class="admonition-title">Note</p>
  274. <p>This method modifies the module in-place.</p>
  275. </div>
  276. <dl class="field-list simple">
  277. <dt class="field-odd">Returns</dt>
  278. <dd class="field-odd"><p>self</p>
  279. </dd>
  280. <dt class="field-even">Return type</dt>
  281. <dd class="field-even"><p>Module</p>
  282. </dd>
  283. </dl>
  284. </dd></dl>
  285. <dl class="py method">
  286. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.buffers">
  287. <span class="sig-name descname"><span class="pre">buffers</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">recurse</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Iterator" title="(in Python v3.10)"><span class="pre">Iterator</span></a><span class="p"><span class="pre">[</span></span><span class="pre">Tensor</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.buffers" title="Permalink to this definition">¶</a></dt>
  288. <dd><p>Returns an iterator over module buffers.</p>
  289. <dl class="field-list simple">
  290. <dt class="field-odd">Parameters</dt>
  291. <dd class="field-odd"><p><strong>recurse</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><em>bool</em></a>) – if True, then yields buffers of this module
  292. and all submodules. Otherwise, yields only buffers that
  293. are direct members of this module.</p>
  294. </dd>
  295. <dt class="field-even">Yields</dt>
  296. <dd class="field-even"><p><em>torch.Tensor</em> – module buffer</p>
  297. </dd>
  298. </dl>
  299. <p>Example:</p>
  300. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">buf</span> <span class="ow">in</span> <span class="n">model</span><span class="o">.</span><span class="n">buffers</span><span class="p">():</span>
  301. <span class="gp">&gt;&gt;&gt; </span> <span class="nb">print</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">buf</span><span class="p">),</span> <span class="n">buf</span><span class="o">.</span><span class="n">size</span><span class="p">())</span>
  302. <span class="go">&lt;class &#39;torch.Tensor&#39;&gt; (20L,)</span>
  303. <span class="go">&lt;class &#39;torch.Tensor&#39;&gt; (20L, 1L, 5L, 5L)</span>
  304. </pre></div>
  305. </div>
  306. </dd></dl>
  307. <dl class="py method">
  308. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.children">
  309. <span class="sig-name descname"><span class="pre">children</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 external" href="https://docs.python.org/3/library/typing.html#typing.Iterator" title="(in Python v3.10)"><span class="pre">Iterator</span></a><span class="p"><span class="pre">[</span></span><span class="pre">Module</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.children" title="Permalink to this definition">¶</a></dt>
  310. <dd><p>Returns an iterator over immediate children modules.</p>
  311. <dl class="field-list simple">
  312. <dt class="field-odd">Yields</dt>
  313. <dd class="field-odd"><p><em>Module</em> – a child module</p>
  314. </dd>
  315. </dl>
  316. </dd></dl>
  317. <dl class="py method">
  318. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.cpu">
  319. <span class="sig-name descname"><span class="pre">cpu</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">T</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.cpu" title="Permalink to this definition">¶</a></dt>
  320. <dd><p>Moves all model parameters and buffers to the CPU.</p>
  321. <div class="admonition note">
  322. <p class="admonition-title">Note</p>
  323. <p>This method modifies the module in-place.</p>
  324. </div>
  325. <dl class="field-list simple">
  326. <dt class="field-odd">Returns</dt>
  327. <dd class="field-odd"><p>self</p>
  328. </dd>
  329. <dt class="field-even">Return type</dt>
  330. <dd class="field-even"><p>Module</p>
  331. </dd>
  332. </dl>
  333. </dd></dl>
  334. <dl class="py method">
  335. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.cuda">
  336. <span class="sig-name descname"><span class="pre">cuda</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">device</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Optional" title="(in Python v3.10)"><span class="pre">Optional</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Union" title="(in Python v3.10)"><span class="pre">Union</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.10)"><span class="pre">int</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">device</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><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">T</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.cuda" title="Permalink to this definition">¶</a></dt>
  337. <dd><p>Moves all model parameters and buffers to the GPU.</p>
  338. <p>This also makes associated parameters and buffers different objects. So
  339. it should be called before constructing optimizer if the module will
  340. live on GPU while being optimized.</p>
  341. <div class="admonition note">
  342. <p class="admonition-title">Note</p>
  343. <p>This method modifies the module in-place.</p>
  344. </div>
  345. <dl class="field-list simple">
  346. <dt class="field-odd">Parameters</dt>
  347. <dd class="field-odd"><p><strong>device</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.10)"><em>int</em></a><em>, </em><em>optional</em>) – if specified, all parameters will be
  348. copied to that device</p>
  349. </dd>
  350. <dt class="field-even">Returns</dt>
  351. <dd class="field-even"><p>self</p>
  352. </dd>
  353. <dt class="field-odd">Return type</dt>
  354. <dd class="field-odd"><p>Module</p>
  355. </dd>
  356. </dl>
  357. </dd></dl>
  358. <dl class="py method">
  359. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.double">
  360. <span class="sig-name descname"><span class="pre">double</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">T</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.double" title="Permalink to this definition">¶</a></dt>
  361. <dd><p>Casts all floating point parameters and buffers to <code class="docutils literal notranslate"><span class="pre">double</span></code> datatype.</p>
  362. <div class="admonition note">
  363. <p class="admonition-title">Note</p>
  364. <p>This method modifies the module in-place.</p>
  365. </div>
  366. <dl class="field-list simple">
  367. <dt class="field-odd">Returns</dt>
  368. <dd class="field-odd"><p>self</p>
  369. </dd>
  370. <dt class="field-even">Return type</dt>
  371. <dd class="field-even"><p>Module</p>
  372. </dd>
  373. </dl>
  374. </dd></dl>
  375. <dl class="py method">
  376. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.eval">
  377. <span class="sig-name descname"><span class="pre">eval</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">T</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.eval" title="Permalink to this definition">¶</a></dt>
  378. <dd><p>Sets the module in evaluation mode.</p>
  379. <p>This has any effect only on certain modules. See documentations of
  380. particular modules for details of their behaviors in training/evaluation
  381. mode, if they are affected, e.g. <code class="xref py py-class docutils literal notranslate"><span class="pre">Dropout</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">BatchNorm</span></code>,
  382. etc.</p>
  383. <p>This is equivalent with <code class="xref py py-meth docutils literal notranslate"><span class="pre">self.train(False)</span></code>.</p>
  384. <p>See <span class="xref std std-ref">locally-disable-grad-doc</span> for a comparison between
  385. <cite>.eval()</cite> and several similar mechanisms that may be confused with it.</p>
  386. <dl class="field-list simple">
  387. <dt class="field-odd">Returns</dt>
  388. <dd class="field-odd"><p>self</p>
  389. </dd>
  390. <dt class="field-even">Return type</dt>
  391. <dd class="field-even"><p>Module</p>
  392. </dd>
  393. </dl>
  394. </dd></dl>
  395. <dl class="py method">
  396. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.extra_repr">
  397. <span class="sig-name descname"><span class="pre">extra_repr</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 external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</span></a></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.extra_repr" title="Permalink to this definition">¶</a></dt>
  398. <dd><p>Set the extra representation of the module</p>
  399. <p>To print customized extra information, you should re-implement
  400. this method in your own modules. Both single-line and multi-line
  401. strings are acceptable.</p>
  402. </dd></dl>
  403. <dl class="py method">
  404. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.float">
  405. <span class="sig-name descname"><span class="pre">float</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">T</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.float" title="Permalink to this definition">¶</a></dt>
  406. <dd><p>Casts all floating point parameters and buffers to <code class="docutils literal notranslate"><span class="pre">float</span></code> datatype.</p>
  407. <div class="admonition note">
  408. <p class="admonition-title">Note</p>
  409. <p>This method modifies the module in-place.</p>
  410. </div>
  411. <dl class="field-list simple">
  412. <dt class="field-odd">Returns</dt>
  413. <dd class="field-odd"><p>self</p>
  414. </dd>
  415. <dt class="field-even">Return type</dt>
  416. <dd class="field-even"><p>Module</p>
  417. </dd>
  418. </dl>
  419. </dd></dl>
  420. <dl class="py method">
  421. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.forward">
  422. <span class="sig-name descname"><span class="pre">forward</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">input</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.10)"><span class="pre">Any</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"><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.10)"><span class="pre">None</span></a></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.forward" title="Permalink to this definition">¶</a></dt>
  423. <dd><p>Defines the computation performed at every call.</p>
  424. <p>Should be overridden by all subclasses.</p>
  425. <div class="admonition note">
  426. <p class="admonition-title">Note</p>
  427. <p>Although the recipe for forward pass needs to be defined within
  428. this function, one should call the <code class="xref py py-class docutils literal notranslate"><span class="pre">Module</span></code> instance afterwards
  429. instead of this since the former takes care of running the
  430. registered hooks while the latter silently ignores them.</p>
  431. </div>
  432. </dd></dl>
  433. <dl class="py method">
  434. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.get_buffer">
  435. <span class="sig-name descname"><span class="pre">get_buffer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</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">Tensor</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.get_buffer" title="Permalink to this definition">¶</a></dt>
  436. <dd><p>Returns the buffer given by <code class="docutils literal notranslate"><span class="pre">target</span></code> if it exists,
  437. otherwise throws an error.</p>
  438. <p>See the docstring for <code class="docutils literal notranslate"><span class="pre">get_submodule</span></code> for a more detailed
  439. explanation of this method’s functionality as well as how to
  440. correctly specify <code class="docutils literal notranslate"><span class="pre">target</span></code>.</p>
  441. <dl class="field-list simple">
  442. <dt class="field-odd">Parameters</dt>
  443. <dd class="field-odd"><p><strong>target</strong> – The fully-qualified string name of the buffer
  444. to look for. (See <code class="docutils literal notranslate"><span class="pre">get_submodule</span></code> for how to specify a
  445. fully-qualified string.)</p>
  446. </dd>
  447. <dt class="field-even">Returns</dt>
  448. <dd class="field-even"><p>The buffer referenced by <code class="docutils literal notranslate"><span class="pre">target</span></code></p>
  449. </dd>
  450. <dt class="field-odd">Return type</dt>
  451. <dd class="field-odd"><p>torch.Tensor</p>
  452. </dd>
  453. <dt class="field-even">Raises</dt>
  454. <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/exceptions.html#AttributeError" title="(in Python v3.10)"><strong>AttributeError</strong></a> – If the target string references an invalid
  455. path or resolves to something that is not a
  456. buffer</p>
  457. </dd>
  458. </dl>
  459. </dd></dl>
  460. <dl class="py method">
  461. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.get_extra_state">
  462. <span class="sig-name descname"><span class="pre">get_extra_state</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 external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.10)"><span class="pre">Any</span></a></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.get_extra_state" title="Permalink to this definition">¶</a></dt>
  463. <dd><p>Returns any extra state to include in the module’s state_dict.
  464. Implement this and a corresponding <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.set_extra_state" title="draugr.torch_utilities.architectures.architecture.Architecture.set_extra_state"><code class="xref py py-func docutils literal notranslate"><span class="pre">set_extra_state()</span></code></a> for your module
  465. if you need to store extra state. This function is called when building the
  466. module’s <cite>state_dict()</cite>.</p>
  467. <p>Note that extra state should be pickleable to ensure working serialization
  468. of the state_dict. We only provide provide backwards compatibility guarantees
  469. for serializing Tensors; other objects may break backwards compatibility if
  470. their serialized pickled form changes.</p>
  471. <dl class="field-list simple">
  472. <dt class="field-odd">Returns</dt>
  473. <dd class="field-odd"><p>Any extra state to store in the module’s state_dict</p>
  474. </dd>
  475. <dt class="field-even">Return type</dt>
  476. <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.10)">object</a></p>
  477. </dd>
  478. </dl>
  479. </dd></dl>
  480. <dl class="py method">
  481. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.get_parameter">
  482. <span class="sig-name descname"><span class="pre">get_parameter</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</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">Parameter</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.get_parameter" title="Permalink to this definition">¶</a></dt>
  483. <dd><p>Returns the parameter given by <code class="docutils literal notranslate"><span class="pre">target</span></code> if it exists,
  484. otherwise throws an error.</p>
  485. <p>See the docstring for <code class="docutils literal notranslate"><span class="pre">get_submodule</span></code> for a more detailed
  486. explanation of this method’s functionality as well as how to
  487. correctly specify <code class="docutils literal notranslate"><span class="pre">target</span></code>.</p>
  488. <dl class="field-list simple">
  489. <dt class="field-odd">Parameters</dt>
  490. <dd class="field-odd"><p><strong>target</strong> – The fully-qualified string name of the Parameter
  491. to look for. (See <code class="docutils literal notranslate"><span class="pre">get_submodule</span></code> for how to specify a
  492. fully-qualified string.)</p>
  493. </dd>
  494. <dt class="field-even">Returns</dt>
  495. <dd class="field-even"><p>The Parameter referenced by <code class="docutils literal notranslate"><span class="pre">target</span></code></p>
  496. </dd>
  497. <dt class="field-odd">Return type</dt>
  498. <dd class="field-odd"><p>torch.nn.Parameter</p>
  499. </dd>
  500. <dt class="field-even">Raises</dt>
  501. <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/exceptions.html#AttributeError" title="(in Python v3.10)"><strong>AttributeError</strong></a> – If the target string references an invalid
  502. path or resolves to something that is not an
  503. <code class="docutils literal notranslate"><span class="pre">nn.Parameter</span></code></p>
  504. </dd>
  505. </dl>
  506. </dd></dl>
  507. <dl class="py method">
  508. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.get_submodule">
  509. <span class="sig-name descname"><span class="pre">get_submodule</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</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">Module</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.get_submodule" title="Permalink to this definition">¶</a></dt>
  510. <dd><p>Returns the submodule given by <code class="docutils literal notranslate"><span class="pre">target</span></code> if it exists,
  511. otherwise throws an error.</p>
  512. <p>For example, let’s say you have an <code class="docutils literal notranslate"><span class="pre">nn.Module</span></code> <code class="docutils literal notranslate"><span class="pre">A</span></code> that
  513. looks like this:</p>
  514. <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>A(
  515. (net_b): Module(
  516. (net_c): Module(
  517. (conv): Conv2d(16, 33, kernel_size=(3, 3), stride=(2, 2))
  518. )
  519. (linear): Linear(in_features=100, out_features=200, bias=True)
  520. )
  521. )
  522. </pre></div>
  523. </div>
  524. <p>(The diagram shows an <code class="docutils literal notranslate"><span class="pre">nn.Module</span></code> <code class="docutils literal notranslate"><span class="pre">A</span></code>. <code class="docutils literal notranslate"><span class="pre">A</span></code> has a nested
  525. submodule <code class="docutils literal notranslate"><span class="pre">net_b</span></code>, which itself has two submodules <code class="docutils literal notranslate"><span class="pre">net_c</span></code>
  526. and <code class="docutils literal notranslate"><span class="pre">linear</span></code>. <code class="docutils literal notranslate"><span class="pre">net_c</span></code> then has a submodule <code class="docutils literal notranslate"><span class="pre">conv</span></code>.)</p>
  527. <p>To check whether or not we have the <code class="docutils literal notranslate"><span class="pre">linear</span></code> submodule, we
  528. would call <code class="docutils literal notranslate"><span class="pre">get_submodule(&quot;net_b.linear&quot;)</span></code>. To check whether
  529. we have the <code class="docutils literal notranslate"><span class="pre">conv</span></code> submodule, we would call
  530. <code class="docutils literal notranslate"><span class="pre">get_submodule(&quot;net_b.net_c.conv&quot;)</span></code>.</p>
  531. <p>The runtime of <code class="docutils literal notranslate"><span class="pre">get_submodule</span></code> is bounded by the degree
  532. of module nesting in <code class="docutils literal notranslate"><span class="pre">target</span></code>. A query against
  533. <code class="docutils literal notranslate"><span class="pre">named_modules</span></code> achieves the same result, but it is O(N) in
  534. the number of transitive modules. So, for a simple check to see
  535. if some submodule exists, <code class="docutils literal notranslate"><span class="pre">get_submodule</span></code> should always be
  536. used.</p>
  537. <dl class="field-list simple">
  538. <dt class="field-odd">Parameters</dt>
  539. <dd class="field-odd"><p><strong>target</strong> – The fully-qualified string name of the submodule
  540. to look for. (See above example for how to specify a
  541. fully-qualified string.)</p>
  542. </dd>
  543. <dt class="field-even">Returns</dt>
  544. <dd class="field-even"><p>The submodule referenced by <code class="docutils literal notranslate"><span class="pre">target</span></code></p>
  545. </dd>
  546. <dt class="field-odd">Return type</dt>
  547. <dd class="field-odd"><p>torch.nn.Module</p>
  548. </dd>
  549. <dt class="field-even">Raises</dt>
  550. <dd class="field-even"><p><a class="reference external" href="https://docs.python.org/3/library/exceptions.html#AttributeError" title="(in Python v3.10)"><strong>AttributeError</strong></a> – If the target string references an invalid
  551. path or resolves to something that is not an
  552. <code class="docutils literal notranslate"><span class="pre">nn.Module</span></code></p>
  553. </dd>
  554. </dl>
  555. </dd></dl>
  556. <dl class="py method">
  557. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.half">
  558. <span class="sig-name descname"><span class="pre">half</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">T</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.half" title="Permalink to this definition">¶</a></dt>
  559. <dd><p>Casts all floating point parameters and buffers to <code class="docutils literal notranslate"><span class="pre">half</span></code> datatype.</p>
  560. <div class="admonition note">
  561. <p class="admonition-title">Note</p>
  562. <p>This method modifies the module in-place.</p>
  563. </div>
  564. <dl class="field-list simple">
  565. <dt class="field-odd">Returns</dt>
  566. <dd class="field-odd"><p>self</p>
  567. </dd>
  568. <dt class="field-even">Return type</dt>
  569. <dd class="field-even"><p>Module</p>
  570. </dd>
  571. </dl>
  572. </dd></dl>
  573. <dl class="py property">
  574. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.input_shape">
  575. <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">input_shape</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Sequence" title="(in Python v3.10)"><span class="pre">Sequence</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.10)"><span class="pre">int</span></a><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.input_shape" title="Permalink to this definition">¶</a></dt>
  576. <dd><p>return:
  577. :rtype:</p>
  578. </dd></dl>
  579. <dl class="py method">
  580. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.ipu">
  581. <span class="sig-name descname"><span class="pre">ipu</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">device</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Optional" title="(in Python v3.10)"><span class="pre">Optional</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Union" title="(in Python v3.10)"><span class="pre">Union</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.10)"><span class="pre">int</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">device</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><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">T</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.ipu" title="Permalink to this definition">¶</a></dt>
  582. <dd><p>Moves all model parameters and buffers to the IPU.</p>
  583. <p>This also makes associated parameters and buffers different objects. So
  584. it should be called before constructing optimizer if the module will
  585. live on IPU while being optimized.</p>
  586. <div class="admonition note">
  587. <p class="admonition-title">Note</p>
  588. <p>This method modifies the module in-place.</p>
  589. </div>
  590. <dl class="field-list simple">
  591. <dt class="field-odd">Parameters</dt>
  592. <dd class="field-odd"><p><strong>device</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.10)"><em>int</em></a><em>, </em><em>optional</em>) – if specified, all parameters will be
  593. copied to that device</p>
  594. </dd>
  595. <dt class="field-even">Returns</dt>
  596. <dd class="field-even"><p>self</p>
  597. </dd>
  598. <dt class="field-odd">Return type</dt>
  599. <dd class="field-odd"><p>Module</p>
  600. </dd>
  601. </dl>
  602. </dd></dl>
  603. <dl class="py method">
  604. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.load_state_dict">
  605. <span class="sig-name descname"><span class="pre">load_state_dict</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">state_dict</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Mapping" title="(in Python v3.10)"><span class="pre">Mapping</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.10)"><span class="pre">Any</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">strict</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.load_state_dict" title="Permalink to this definition">¶</a></dt>
  606. <dd><p>Copies parameters and buffers from <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.state_dict" title="draugr.torch_utilities.architectures.architecture.Architecture.state_dict"><code class="xref py py-attr docutils literal notranslate"><span class="pre">state_dict</span></code></a> into
  607. this module and its descendants. If <code class="xref py py-attr docutils literal notranslate"><span class="pre">strict</span></code> is <code class="docutils literal notranslate"><span class="pre">True</span></code>, then
  608. the keys of <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.state_dict" title="draugr.torch_utilities.architectures.architecture.Architecture.state_dict"><code class="xref py py-attr docutils literal notranslate"><span class="pre">state_dict</span></code></a> must exactly match the keys returned
  609. by this module’s <code class="xref py py-meth docutils literal notranslate"><span class="pre">state_dict()</span></code> function.</p>
  610. <dl class="field-list simple">
  611. <dt class="field-odd">Parameters</dt>
  612. <dd class="field-odd"><ul class="simple">
  613. <li><p><strong>state_dict</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.10)"><em>dict</em></a>) – a dict containing parameters and
  614. persistent buffers.</p></li>
  615. <li><p><strong>strict</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><em>bool</em></a><em>, </em><em>optional</em>) – whether to strictly enforce that the keys
  616. in <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.state_dict" title="draugr.torch_utilities.architectures.architecture.Architecture.state_dict"><code class="xref py py-attr docutils literal notranslate"><span class="pre">state_dict</span></code></a> match the keys returned by this module’s
  617. <code class="xref py py-meth docutils literal notranslate"><span class="pre">state_dict()</span></code> function. Default: <code class="docutils literal notranslate"><span class="pre">True</span></code></p></li>
  618. </ul>
  619. </dd>
  620. <dt class="field-even">Returns</dt>
  621. <dd class="field-even"><p><ul class="simple">
  622. <li><p><strong>missing_keys</strong> is a list of str containing the missing keys</p></li>
  623. <li><p><strong>unexpected_keys</strong> is a list of str containing the unexpected keys</p></li>
  624. </ul>
  625. </p>
  626. </dd>
  627. <dt class="field-odd">Return type</dt>
  628. <dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">NamedTuple</span></code> with <code class="docutils literal notranslate"><span class="pre">missing_keys</span></code> and <code class="docutils literal notranslate"><span class="pre">unexpected_keys</span></code> fields</p>
  629. </dd>
  630. </dl>
  631. <div class="admonition note">
  632. <p class="admonition-title">Note</p>
  633. <p>If a parameter or buffer is registered as <code class="docutils literal notranslate"><span class="pre">None</span></code> and its corresponding key
  634. exists in <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.state_dict" title="draugr.torch_utilities.architectures.architecture.Architecture.state_dict"><code class="xref py py-attr docutils literal notranslate"><span class="pre">state_dict</span></code></a>, <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.load_state_dict" title="draugr.torch_utilities.architectures.architecture.Architecture.load_state_dict"><code class="xref py py-meth docutils literal notranslate"><span class="pre">load_state_dict()</span></code></a> will raise a
  635. <code class="docutils literal notranslate"><span class="pre">RuntimeError</span></code>.</p>
  636. </div>
  637. </dd></dl>
  638. <dl class="py method">
  639. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.modules">
  640. <span class="sig-name descname"><span class="pre">modules</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 external" href="https://docs.python.org/3/library/typing.html#typing.Iterator" title="(in Python v3.10)"><span class="pre">Iterator</span></a><span class="p"><span class="pre">[</span></span><span class="pre">Module</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.modules" title="Permalink to this definition">¶</a></dt>
  641. <dd><p>Returns an iterator over all modules in the network.</p>
  642. <dl class="field-list simple">
  643. <dt class="field-odd">Yields</dt>
  644. <dd class="field-odd"><p><em>Module</em> – a module in the network</p>
  645. </dd>
  646. </dl>
  647. <div class="admonition note">
  648. <p class="admonition-title">Note</p>
  649. <p>Duplicate modules are returned only once. In the following
  650. example, <code class="docutils literal notranslate"><span class="pre">l</span></code> will be returned only once.</p>
  651. </div>
  652. <p>Example:</p>
  653. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">l</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
  654. <span class="gp">&gt;&gt;&gt; </span><span class="n">net</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Sequential</span><span class="p">(</span><span class="n">l</span><span class="p">,</span> <span class="n">l</span><span class="p">)</span>
  655. <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">m</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">net</span><span class="o">.</span><span class="n">modules</span><span class="p">()):</span>
  656. <span class="go"> print(idx, &#39;-&gt;&#39;, m)</span>
  657. <span class="go">0 -&gt; Sequential(</span>
  658. <span class="go"> (0): Linear(in_features=2, out_features=2, bias=True)</span>
  659. <span class="go"> (1): Linear(in_features=2, out_features=2, bias=True)</span>
  660. <span class="go">)</span>
  661. <span class="go">1 -&gt; Linear(in_features=2, out_features=2, bias=True)</span>
  662. </pre></div>
  663. </div>
  664. </dd></dl>
  665. <dl class="py method">
  666. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.named_buffers">
  667. <span class="sig-name descname"><span class="pre">named_buffers</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">recurse</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Iterator" title="(in Python v3.10)"><span class="pre">Iterator</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Tuple" title="(in Python v3.10)"><span class="pre">Tuple</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</span></a><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="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.named_buffers" title="Permalink to this definition">¶</a></dt>
  668. <dd><p>Returns an iterator over module buffers, yielding both the
  669. name of the buffer as well as the buffer itself.</p>
  670. <dl class="field-list simple">
  671. <dt class="field-odd">Parameters</dt>
  672. <dd class="field-odd"><ul class="simple">
  673. <li><p><strong>prefix</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><em>str</em></a>) – prefix to prepend to all buffer names.</p></li>
  674. <li><p><strong>recurse</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><em>bool</em></a>) – if True, then yields buffers of this module
  675. and all submodules. Otherwise, yields only buffers that
  676. are direct members of this module.</p></li>
  677. </ul>
  678. </dd>
  679. <dt class="field-even">Yields</dt>
  680. <dd class="field-even"><p><em>(string, torch.Tensor)</em> – Tuple containing the name and buffer</p>
  681. </dd>
  682. </dl>
  683. <p>Example:</p>
  684. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">buf</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">named_buffers</span><span class="p">():</span>
  685. <span class="gp">&gt;&gt;&gt; </span> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;running_var&#39;</span><span class="p">]:</span>
  686. <span class="gp">&gt;&gt;&gt; </span> <span class="nb">print</span><span class="p">(</span><span class="n">buf</span><span class="o">.</span><span class="n">size</span><span class="p">())</span>
  687. </pre></div>
  688. </div>
  689. </dd></dl>
  690. <dl class="py method">
  691. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.named_children">
  692. <span class="sig-name descname"><span class="pre">named_children</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 external" href="https://docs.python.org/3/library/typing.html#typing.Iterator" title="(in Python v3.10)"><span class="pre">Iterator</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Tuple" title="(in Python v3.10)"><span class="pre">Tuple</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Module</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.named_children" title="Permalink to this definition">¶</a></dt>
  693. <dd><p>Returns an iterator over immediate children modules, yielding both
  694. the name of the module as well as the module itself.</p>
  695. <dl class="field-list simple">
  696. <dt class="field-odd">Yields</dt>
  697. <dd class="field-odd"><p><em>(string, Module)</em> – Tuple containing a name and child module</p>
  698. </dd>
  699. </dl>
  700. <p>Example:</p>
  701. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">module</span> <span class="ow">in</span> <span class="n">model</span><span class="o">.</span><span class="n">named_children</span><span class="p">():</span>
  702. <span class="gp">&gt;&gt;&gt; </span> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;conv4&#39;</span><span class="p">,</span> <span class="s1">&#39;conv5&#39;</span><span class="p">]:</span>
  703. <span class="gp">&gt;&gt;&gt; </span> <span class="nb">print</span><span class="p">(</span><span class="n">module</span><span class="p">)</span>
  704. </pre></div>
  705. </div>
  706. </dd></dl>
  707. <dl class="py method">
  708. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.named_modules">
  709. <span class="sig-name descname"><span class="pre">named_modules</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">memo</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Optional" title="(in Python v3.10)"><span class="pre">Optional</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Set" title="(in Python v3.10)"><span class="pre">Set</span></a><span class="p"><span class="pre">[</span></span><span class="pre">Module</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">prefix</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">remove_duplicate</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.named_modules" title="Permalink to this definition">¶</a></dt>
  710. <dd><p>Returns an iterator over all modules in the network, yielding
  711. both the name of the module as well as the module itself.</p>
  712. <dl class="field-list simple">
  713. <dt class="field-odd">Parameters</dt>
  714. <dd class="field-odd"><ul class="simple">
  715. <li><p><strong>memo</strong> – a memo to store the set of modules already added to the result</p></li>
  716. <li><p><strong>prefix</strong> – a prefix that will be added to the name of the module</p></li>
  717. <li><p><strong>remove_duplicate</strong> – whether to remove the duplicated module instances in the result
  718. or not</p></li>
  719. </ul>
  720. </dd>
  721. <dt class="field-even">Yields</dt>
  722. <dd class="field-even"><p><em>(string, Module)</em> – Tuple of name and module</p>
  723. </dd>
  724. </dl>
  725. <div class="admonition note">
  726. <p class="admonition-title">Note</p>
  727. <p>Duplicate modules are returned only once. In the following
  728. example, <code class="docutils literal notranslate"><span class="pre">l</span></code> will be returned only once.</p>
  729. </div>
  730. <p>Example:</p>
  731. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">l</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
  732. <span class="gp">&gt;&gt;&gt; </span><span class="n">net</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Sequential</span><span class="p">(</span><span class="n">l</span><span class="p">,</span> <span class="n">l</span><span class="p">)</span>
  733. <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">m</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">net</span><span class="o">.</span><span class="n">named_modules</span><span class="p">()):</span>
  734. <span class="go"> print(idx, &#39;-&gt;&#39;, m)</span>
  735. <span class="go">0 -&gt; (&#39;&#39;, Sequential(</span>
  736. <span class="go"> (0): Linear(in_features=2, out_features=2, bias=True)</span>
  737. <span class="go"> (1): Linear(in_features=2, out_features=2, bias=True)</span>
  738. <span class="go">))</span>
  739. <span class="go">1 -&gt; (&#39;0&#39;, Linear(in_features=2, out_features=2, bias=True))</span>
  740. </pre></div>
  741. </div>
  742. </dd></dl>
  743. <dl class="py method">
  744. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.named_parameters">
  745. <span class="sig-name descname"><span class="pre">named_parameters</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">recurse</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Iterator" title="(in Python v3.10)"><span class="pre">Iterator</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Tuple" title="(in Python v3.10)"><span class="pre">Tuple</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Parameter</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.named_parameters" title="Permalink to this definition">¶</a></dt>
  746. <dd><p>Returns an iterator over module parameters, yielding both the
  747. name of the parameter as well as the parameter itself.</p>
  748. <dl class="field-list simple">
  749. <dt class="field-odd">Parameters</dt>
  750. <dd class="field-odd"><ul class="simple">
  751. <li><p><strong>prefix</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><em>str</em></a>) – prefix to prepend to all parameter names.</p></li>
  752. <li><p><strong>recurse</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><em>bool</em></a>) – if True, then yields parameters of this module
  753. and all submodules. Otherwise, yields only parameters that
  754. are direct members of this module.</p></li>
  755. </ul>
  756. </dd>
  757. <dt class="field-even">Yields</dt>
  758. <dd class="field-even"><p><em>(string, Parameter)</em> – Tuple containing the name and parameter</p>
  759. </dd>
  760. </dl>
  761. <p>Example:</p>
  762. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">param</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">named_parameters</span><span class="p">():</span>
  763. <span class="gp">&gt;&gt;&gt; </span> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;bias&#39;</span><span class="p">]:</span>
  764. <span class="gp">&gt;&gt;&gt; </span> <span class="nb">print</span><span class="p">(</span><span class="n">param</span><span class="o">.</span><span class="n">size</span><span class="p">())</span>
  765. </pre></div>
  766. </div>
  767. </dd></dl>
  768. <dl class="py property">
  769. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.output_shape">
  770. <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">output_shape</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Sequence" title="(in Python v3.10)"><span class="pre">Sequence</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.10)"><span class="pre">int</span></a><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.output_shape" title="Permalink to this definition">¶</a></dt>
  771. <dd><p>return:
  772. :rtype:</p>
  773. </dd></dl>
  774. <dl class="py method">
  775. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.parameters">
  776. <span class="sig-name descname"><span class="pre">parameters</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">recurse</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Iterator" title="(in Python v3.10)"><span class="pre">Iterator</span></a><span class="p"><span class="pre">[</span></span><span class="pre">Parameter</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.parameters" title="Permalink to this definition">¶</a></dt>
  777. <dd><p>Returns an iterator over module parameters.</p>
  778. <p>This is typically passed to an optimizer.</p>
  779. <dl class="field-list simple">
  780. <dt class="field-odd">Parameters</dt>
  781. <dd class="field-odd"><p><strong>recurse</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><em>bool</em></a>) – if True, then yields parameters of this module
  782. and all submodules. Otherwise, yields only parameters that
  783. are direct members of this module.</p>
  784. </dd>
  785. <dt class="field-even">Yields</dt>
  786. <dd class="field-even"><p><em>Parameter</em> – module parameter</p>
  787. </dd>
  788. </dl>
  789. <p>Example:</p>
  790. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">param</span> <span class="ow">in</span> <span class="n">model</span><span class="o">.</span><span class="n">parameters</span><span class="p">():</span>
  791. <span class="gp">&gt;&gt;&gt; </span> <span class="nb">print</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">param</span><span class="p">),</span> <span class="n">param</span><span class="o">.</span><span class="n">size</span><span class="p">())</span>
  792. <span class="go">&lt;class &#39;torch.Tensor&#39;&gt; (20L,)</span>
  793. <span class="go">&lt;class &#39;torch.Tensor&#39;&gt; (20L, 1L, 5L, 5L)</span>
  794. </pre></div>
  795. </div>
  796. </dd></dl>
  797. <dl class="py method">
  798. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.register_backward_hook">
  799. <span class="sig-name descname"><span class="pre">register_backward_hook</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">hook</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.10)"><span class="pre">Callable</span></a><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="pre">Module</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Union" title="(in Python v3.10)"><span class="pre">Union</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Tuple" title="(in Python v3.10)"><span class="pre">Tuple</span></a><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="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></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><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Union" title="(in Python v3.10)"><span class="pre">Union</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Tuple" title="(in Python v3.10)"><span class="pre">Tuple</span></a><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="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></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="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Union" title="(in Python v3.10)"><span class="pre">Union</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.10)"><span class="pre">None</span></a><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></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">RemovableHandle</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_backward_hook" title="Permalink to this definition">¶</a></dt>
  800. <dd><p>Registers a backward hook on the module.</p>
  801. <p>This function is deprecated in favor of <code class="xref py py-meth docutils literal notranslate"><span class="pre">register_full_backward_hook()</span></code> and
  802. the behavior of this function will change in future versions.</p>
  803. <dl class="field-list simple">
  804. <dt class="field-odd">Returns</dt>
  805. <dd class="field-odd"><p>a handle that can be used to remove the added hook by calling
  806. <code class="docutils literal notranslate"><span class="pre">handle.remove()</span></code></p>
  807. </dd>
  808. <dt class="field-even">Return type</dt>
  809. <dd class="field-even"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">torch.utils.hooks.RemovableHandle</span></code></p>
  810. </dd>
  811. </dl>
  812. </dd></dl>
  813. <dl class="py method">
  814. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.register_buffer">
  815. <span class="sig-name descname"><span class="pre">register_buffer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">tensor</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Optional" title="(in Python v3.10)"><span class="pre">Optional</span></a><span class="p"><span class="pre">[</span></span><span class="pre">Tensor</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">persistent</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.10)"><span class="pre">None</span></a></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_buffer" title="Permalink to this definition">¶</a></dt>
  816. <dd><p>Adds a buffer to the module.</p>
  817. <p>This is typically used to register a buffer that should not to be
  818. considered a model parameter. For example, BatchNorm’s <code class="docutils literal notranslate"><span class="pre">running_mean</span></code>
  819. is not a parameter, but is part of the module’s state. Buffers, by
  820. default, are persistent and will be saved alongside parameters. This
  821. behavior can be changed by setting <code class="xref py py-attr docutils literal notranslate"><span class="pre">persistent</span></code> to <code class="docutils literal notranslate"><span class="pre">False</span></code>. The
  822. only difference between a persistent buffer and a non-persistent buffer
  823. is that the latter will not be a part of this module’s
  824. <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.state_dict" title="draugr.torch_utilities.architectures.architecture.Architecture.state_dict"><code class="xref py py-attr docutils literal notranslate"><span class="pre">state_dict</span></code></a>.</p>
  825. <p>Buffers can be accessed as attributes using given names.</p>
  826. <dl class="field-list simple">
  827. <dt class="field-odd">Parameters</dt>
  828. <dd class="field-odd"><ul class="simple">
  829. <li><p><strong>name</strong> (<em>string</em>) – name of the buffer. The buffer can be accessed
  830. from this module using the given name</p></li>
  831. <li><p><strong>tensor</strong> (<em>Tensor</em><em> or </em><em>None</em>) – buffer to be registered. If <code class="docutils literal notranslate"><span class="pre">None</span></code>, then operations
  832. that run on buffers, such as <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.cuda" title="draugr.torch_utilities.architectures.architecture.Architecture.cuda"><code class="xref py py-attr docutils literal notranslate"><span class="pre">cuda</span></code></a>, are ignored. If <code class="docutils literal notranslate"><span class="pre">None</span></code>,
  833. the buffer is <strong>not</strong> included in the module’s <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.state_dict" title="draugr.torch_utilities.architectures.architecture.Architecture.state_dict"><code class="xref py py-attr docutils literal notranslate"><span class="pre">state_dict</span></code></a>.</p></li>
  834. <li><p><strong>persistent</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><em>bool</em></a>) – whether the buffer is part of this module’s
  835. <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.state_dict" title="draugr.torch_utilities.architectures.architecture.Architecture.state_dict"><code class="xref py py-attr docutils literal notranslate"><span class="pre">state_dict</span></code></a>.</p></li>
  836. </ul>
  837. </dd>
  838. </dl>
  839. <p>Example:</p>
  840. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="bp">self</span><span class="o">.</span><span class="n">register_buffer</span><span class="p">(</span><span class="s1">&#39;running_mean&#39;</span><span class="p">,</span> <span class="n">torch</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">num_features</span><span class="p">))</span>
  841. </pre></div>
  842. </div>
  843. </dd></dl>
  844. <dl class="py method">
  845. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.register_forward_hook">
  846. <span class="sig-name descname"><span class="pre">register_forward_hook</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">hook</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.10)"><span class="pre">Callable</span></a><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 class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.10)"><span class="pre">None</span></a><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">RemovableHandle</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_forward_hook" title="Permalink to this definition">¶</a></dt>
  847. <dd><p>Registers a forward hook on the module.</p>
  848. <p>The hook will be called every time after <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.forward" title="draugr.torch_utilities.architectures.architecture.Architecture.forward"><code class="xref py py-func docutils literal notranslate"><span class="pre">forward()</span></code></a> has computed an output.
  849. It should have the following signature:</p>
  850. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">hook</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="nb">input</span><span class="p">,</span> <span class="n">output</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">modified</span> <span class="n">output</span>
  851. </pre></div>
  852. </div>
  853. <p>The input contains only the positional arguments given to the module.
  854. Keyword arguments won’t be passed to the hooks and only to the <code class="docutils literal notranslate"><span class="pre">forward</span></code>.
  855. The hook can modify the output. It can modify the input inplace but
  856. it will not have effect on forward since this is called after
  857. <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.forward" title="draugr.torch_utilities.architectures.architecture.Architecture.forward"><code class="xref py py-func docutils literal notranslate"><span class="pre">forward()</span></code></a> is called.</p>
  858. <dl class="field-list simple">
  859. <dt class="field-odd">Returns</dt>
  860. <dd class="field-odd"><p>a handle that can be used to remove the added hook by calling
  861. <code class="docutils literal notranslate"><span class="pre">handle.remove()</span></code></p>
  862. </dd>
  863. <dt class="field-even">Return type</dt>
  864. <dd class="field-even"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">torch.utils.hooks.RemovableHandle</span></code></p>
  865. </dd>
  866. </dl>
  867. </dd></dl>
  868. <dl class="py method">
  869. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.register_forward_pre_hook">
  870. <span class="sig-name descname"><span class="pre">register_forward_pre_hook</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">hook</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.10)"><span class="pre">Callable</span></a><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 class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.10)"><span class="pre">None</span></a><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">RemovableHandle</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_forward_pre_hook" title="Permalink to this definition">¶</a></dt>
  871. <dd><p>Registers a forward pre-hook on the module.</p>
  872. <p>The hook will be called every time before <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.forward" title="draugr.torch_utilities.architectures.architecture.Architecture.forward"><code class="xref py py-func docutils literal notranslate"><span class="pre">forward()</span></code></a> is invoked.
  873. It should have the following signature:</p>
  874. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">hook</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="nb">input</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">modified</span> <span class="nb">input</span>
  875. </pre></div>
  876. </div>
  877. <p>The input contains only the positional arguments given to the module.
  878. Keyword arguments won’t be passed to the hooks and only to the <code class="docutils literal notranslate"><span class="pre">forward</span></code>.
  879. The hook can modify the input. User can either return a tuple or a
  880. single modified value in the hook. We will wrap the value into a tuple
  881. if a single value is returned(unless that value is already a tuple).</p>
  882. <dl class="field-list simple">
  883. <dt class="field-odd">Returns</dt>
  884. <dd class="field-odd"><p>a handle that can be used to remove the added hook by calling
  885. <code class="docutils literal notranslate"><span class="pre">handle.remove()</span></code></p>
  886. </dd>
  887. <dt class="field-even">Return type</dt>
  888. <dd class="field-even"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">torch.utils.hooks.RemovableHandle</span></code></p>
  889. </dd>
  890. </dl>
  891. </dd></dl>
  892. <dl class="py method">
  893. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.register_full_backward_hook">
  894. <span class="sig-name descname"><span class="pre">register_full_backward_hook</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">hook</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Callable" title="(in Python v3.10)"><span class="pre">Callable</span></a><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="pre">Module</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Union" title="(in Python v3.10)"><span class="pre">Union</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Tuple" title="(in Python v3.10)"><span class="pre">Tuple</span></a><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="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></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><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Union" title="(in Python v3.10)"><span class="pre">Union</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Tuple" title="(in Python v3.10)"><span class="pre">Tuple</span></a><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="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></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="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Union" title="(in Python v3.10)"><span class="pre">Union</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.10)"><span class="pre">None</span></a><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></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">RemovableHandle</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_full_backward_hook" title="Permalink to this definition">¶</a></dt>
  895. <dd><p>Registers a backward hook on the module.</p>
  896. <p>The hook will be called every time the gradients with respect to module
  897. inputs are computed. The hook should have the following signature:</p>
  898. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">hook</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="n">grad_input</span><span class="p">,</span> <span class="n">grad_output</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">Tensor</span><span class="p">)</span> <span class="ow">or</span> <span class="kc">None</span>
  899. </pre></div>
  900. </div>
  901. <p>The <code class="xref py py-attr docutils literal notranslate"><span class="pre">grad_input</span></code> and <code class="xref py py-attr docutils literal notranslate"><span class="pre">grad_output</span></code> are tuples that contain the gradients
  902. with respect to the inputs and outputs respectively. The hook should
  903. not modify its arguments, but it can optionally return a new gradient with
  904. respect to the input that will be used in place of <code class="xref py py-attr docutils literal notranslate"><span class="pre">grad_input</span></code> in
  905. subsequent computations. <code class="xref py py-attr docutils literal notranslate"><span class="pre">grad_input</span></code> will only correspond to the inputs given
  906. as positional arguments and all kwarg arguments are ignored. Entries
  907. in <code class="xref py py-attr docutils literal notranslate"><span class="pre">grad_input</span></code> and <code class="xref py py-attr docutils literal notranslate"><span class="pre">grad_output</span></code> will be <code class="docutils literal notranslate"><span class="pre">None</span></code> for all non-Tensor
  908. arguments.</p>
  909. <p>For technical reasons, when this hook is applied to a Module, its forward function will
  910. receive a view of each Tensor passed to the Module. Similarly the caller will receive a view
  911. of each Tensor returned by the Module’s forward function.</p>
  912. <div class="admonition warning">
  913. <p class="admonition-title">Warning</p>
  914. <p>Modifying inputs or outputs inplace is not allowed when using backward hooks and
  915. will raise an error.</p>
  916. </div>
  917. <dl class="field-list simple">
  918. <dt class="field-odd">Returns</dt>
  919. <dd class="field-odd"><p>a handle that can be used to remove the added hook by calling
  920. <code class="docutils literal notranslate"><span class="pre">handle.remove()</span></code></p>
  921. </dd>
  922. <dt class="field-even">Return type</dt>
  923. <dd class="field-even"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">torch.utils.hooks.RemovableHandle</span></code></p>
  924. </dd>
  925. </dl>
  926. </dd></dl>
  927. <dl class="py method">
  928. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.register_load_state_dict_post_hook">
  929. <span class="sig-name descname"><span class="pre">register_load_state_dict_post_hook</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">hook</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_load_state_dict_post_hook" title="Permalink to this definition">¶</a></dt>
  930. <dd><p>Registers a post hook to be run after module’s <code class="docutils literal notranslate"><span class="pre">load_state_dict</span></code>
  931. is called.</p>
  932. <dl class="simple">
  933. <dt>It should have the following signature::</dt><dd><p>hook(module, incompatible_keys) -&gt; None</p>
  934. </dd>
  935. </dl>
  936. <p>The <code class="docutils literal notranslate"><span class="pre">module</span></code> argument is the current module that this hook is registered
  937. on, and the <code class="docutils literal notranslate"><span class="pre">incompatible_keys</span></code> argument is a <code class="docutils literal notranslate"><span class="pre">NamedTuple</span></code> consisting
  938. of attributes <code class="docutils literal notranslate"><span class="pre">missing_keys</span></code> and <code class="docutils literal notranslate"><span class="pre">unexpected_keys</span></code>. <code class="docutils literal notranslate"><span class="pre">missing_keys</span></code>
  939. is a <code class="docutils literal notranslate"><span class="pre">list</span></code> of <code class="docutils literal notranslate"><span class="pre">str</span></code> containing the missing keys and
  940. <code class="docutils literal notranslate"><span class="pre">unexpected_keys</span></code> is a <code class="docutils literal notranslate"><span class="pre">list</span></code> of <code class="docutils literal notranslate"><span class="pre">str</span></code> containing the unexpected keys.</p>
  941. <p>The given incompatible_keys can be modified inplace if needed.</p>
  942. <p>Note that the checks performed when calling <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.load_state_dict" title="draugr.torch_utilities.architectures.architecture.Architecture.load_state_dict"><code class="xref py py-func docutils literal notranslate"><span class="pre">load_state_dict()</span></code></a> with
  943. <code class="docutils literal notranslate"><span class="pre">strict=True</span></code> are affected by modifications the hook makes to
  944. <code class="docutils literal notranslate"><span class="pre">missing_keys</span></code> or <code class="docutils literal notranslate"><span class="pre">unexpected_keys</span></code>, as expected. Additions to either
  945. set of keys will result in an error being thrown when <code class="docutils literal notranslate"><span class="pre">strict=True</span></code>, and
  946. clearning out both missing and unexpected keys will avoid an error.</p>
  947. <dl class="field-list simple">
  948. <dt class="field-odd">Returns</dt>
  949. <dd class="field-odd"><p>a handle that can be used to remove the added hook by calling
  950. <code class="docutils literal notranslate"><span class="pre">handle.remove()</span></code></p>
  951. </dd>
  952. <dt class="field-even">Return type</dt>
  953. <dd class="field-even"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">torch.utils.hooks.RemovableHandle</span></code></p>
  954. </dd>
  955. </dl>
  956. </dd></dl>
  957. <dl class="py method">
  958. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.register_module">
  959. <span class="sig-name descname"><span class="pre">register_module</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">module</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Optional" title="(in Python v3.10)"><span class="pre">Optional</span></a><span class="p"><span class="pre">[</span></span><span class="pre">Module</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"><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.10)"><span class="pre">None</span></a></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_module" title="Permalink to this definition">¶</a></dt>
  960. <dd><p>Alias for <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.add_module" title="draugr.torch_utilities.architectures.architecture.Architecture.add_module"><code class="xref py py-func docutils literal notranslate"><span class="pre">add_module()</span></code></a>.</p>
  961. </dd></dl>
  962. <dl class="py method">
  963. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.register_parameter">
  964. <span class="sig-name descname"><span class="pre">register_parameter</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">param</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Optional" title="(in Python v3.10)"><span class="pre">Optional</span></a><span class="p"><span class="pre">[</span></span><span class="pre">Parameter</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"><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.10)"><span class="pre">None</span></a></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.register_parameter" title="Permalink to this definition">¶</a></dt>
  965. <dd><p>Adds a parameter to the module.</p>
  966. <p>The parameter can be accessed as an attribute using given name.</p>
  967. <dl class="field-list simple">
  968. <dt class="field-odd">Parameters</dt>
  969. <dd class="field-odd"><ul class="simple">
  970. <li><p><strong>name</strong> (<em>string</em>) – name of the parameter. The parameter can be accessed
  971. from this module using the given name</p></li>
  972. <li><p><strong>param</strong> (<em>Parameter</em><em> or </em><em>None</em>) – parameter to be added to the module. If
  973. <code class="docutils literal notranslate"><span class="pre">None</span></code>, then operations that run on parameters, such as <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.cuda" title="draugr.torch_utilities.architectures.architecture.Architecture.cuda"><code class="xref py py-attr docutils literal notranslate"><span class="pre">cuda</span></code></a>,
  974. are ignored. If <code class="docutils literal notranslate"><span class="pre">None</span></code>, the parameter is <strong>not</strong> included in the
  975. module’s <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.state_dict" title="draugr.torch_utilities.architectures.architecture.Architecture.state_dict"><code class="xref py py-attr docutils literal notranslate"><span class="pre">state_dict</span></code></a>.</p></li>
  976. </ul>
  977. </dd>
  978. </dl>
  979. </dd></dl>
  980. <dl class="py method">
  981. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.requires_grad_">
  982. <span class="sig-name descname"><span class="pre">requires_grad_</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">requires_grad</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</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">T</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.requires_grad_" title="Permalink to this definition">¶</a></dt>
  983. <dd><p>Change if autograd should record operations on parameters in this
  984. module.</p>
  985. <p>This method sets the parameters’ <code class="xref py py-attr docutils literal notranslate"><span class="pre">requires_grad</span></code> attributes
  986. in-place.</p>
  987. <p>This method is helpful for freezing part of the module for finetuning
  988. or training parts of a model individually (e.g., GAN training).</p>
  989. <p>See <span class="xref std std-ref">locally-disable-grad-doc</span> for a comparison between
  990. <cite>.requires_grad_()</cite> and several similar mechanisms that may be confused with it.</p>
  991. <dl class="field-list simple">
  992. <dt class="field-odd">Parameters</dt>
  993. <dd class="field-odd"><p><strong>requires_grad</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><em>bool</em></a>) – whether autograd should record operations on
  994. parameters in this module. Default: <code class="docutils literal notranslate"><span class="pre">True</span></code>.</p>
  995. </dd>
  996. <dt class="field-even">Returns</dt>
  997. <dd class="field-even"><p>self</p>
  998. </dd>
  999. <dt class="field-odd">Return type</dt>
  1000. <dd class="field-odd"><p>Module</p>
  1001. </dd>
  1002. </dl>
  1003. </dd></dl>
  1004. <dl class="py method">
  1005. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.sample_input">
  1006. <span class="sig-name descname"><span class="pre">sample_input</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 external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.10)"><span class="pre">Any</span></a></span></span><a class="reference internal" href="../_modules/draugr/torch_utilities/architectures/architecture.html#Architecture.sample_input"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.sample_input" title="Permalink to this definition">¶</a></dt>
  1007. <dd><dl class="field-list simple">
  1008. <dt class="field-odd">Returns</dt>
  1009. <dd class="field-odd"><p></p>
  1010. </dd>
  1011. <dt class="field-even">Return type</dt>
  1012. <dd class="field-even"><p></p>
  1013. </dd>
  1014. </dl>
  1015. </dd></dl>
  1016. <dl class="py method">
  1017. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.set_extra_state">
  1018. <span class="sig-name descname"><span class="pre">set_extra_state</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">state</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Any" title="(in Python v3.10)"><span class="pre">Any</span></a></span></em><span class="sig-paren">)</span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.set_extra_state" title="Permalink to this definition">¶</a></dt>
  1019. <dd><p>This function is called from <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.load_state_dict" title="draugr.torch_utilities.architectures.architecture.Architecture.load_state_dict"><code class="xref py py-func docutils literal notranslate"><span class="pre">load_state_dict()</span></code></a> to handle any extra state
  1020. found within the <cite>state_dict</cite>. Implement this function and a corresponding
  1021. <a class="reference internal" href="#draugr.torch_utilities.architectures.architecture.Architecture.get_extra_state" title="draugr.torch_utilities.architectures.architecture.Architecture.get_extra_state"><code class="xref py py-func docutils literal notranslate"><span class="pre">get_extra_state()</span></code></a> for your module if you need to store extra state within its
  1022. <cite>state_dict</cite>.</p>
  1023. <dl class="field-list simple">
  1024. <dt class="field-odd">Parameters</dt>
  1025. <dd class="field-odd"><p><strong>state</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.10)"><em>dict</em></a>) – Extra state from the <cite>state_dict</cite></p>
  1026. </dd>
  1027. </dl>
  1028. </dd></dl>
  1029. <dl class="py method">
  1030. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.share_memory">
  1031. <span class="sig-name descname"><span class="pre">share_memory</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">T</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.share_memory" title="Permalink to this definition">¶</a></dt>
  1032. <dd><p>See <code class="xref py py-meth docutils literal notranslate"><span class="pre">torch.Tensor.share_memory_()</span></code></p>
  1033. </dd></dl>
  1034. <dl class="py method">
  1035. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.state_dict">
  1036. <span class="sig-name descname"><span class="pre">state_dict</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">destination</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">keep_vars</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.state_dict" title="Permalink to this definition">¶</a></dt>
  1037. <dd><p>Returns a dictionary containing a whole state of the module.</p>
  1038. <p>Both parameters and persistent buffers (e.g. running averages) are
  1039. included. Keys are corresponding parameter and buffer names.
  1040. Parameters and buffers set to <code class="docutils literal notranslate"><span class="pre">None</span></code> are not included.</p>
  1041. <div class="admonition warning">
  1042. <p class="admonition-title">Warning</p>
  1043. <p>Currently <code class="docutils literal notranslate"><span class="pre">state_dict()</span></code> also accepts positional arguments for
  1044. <code class="docutils literal notranslate"><span class="pre">destination</span></code>, <code class="docutils literal notranslate"><span class="pre">prefix</span></code> and <code class="docutils literal notranslate"><span class="pre">keep_vars</span></code> in order. However,
  1045. this is being deprecated and keyword arguments will be enforced in
  1046. future releases.</p>
  1047. </div>
  1048. <div class="admonition warning">
  1049. <p class="admonition-title">Warning</p>
  1050. <p>Please avoid the use of argument <code class="docutils literal notranslate"><span class="pre">destination</span></code> as it is not
  1051. designed for end-users.</p>
  1052. </div>
  1053. <dl class="field-list simple">
  1054. <dt class="field-odd">Parameters</dt>
  1055. <dd class="field-odd"><ul class="simple">
  1056. <li><p><strong>destination</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.10)"><em>dict</em></a><em>, </em><em>optional</em>) – If provided, the state of module will
  1057. be updated into the dict and the same object is returned.
  1058. Otherwise, an <code class="docutils literal notranslate"><span class="pre">OrderedDict</span></code> will be created and returned.
  1059. Default: <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
  1060. <li><p><strong>prefix</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><em>str</em></a><em>, </em><em>optional</em>) – a prefix added to parameter and buffer
  1061. names to compose the keys in state_dict. Default: <code class="docutils literal notranslate"><span class="pre">''</span></code>.</p></li>
  1062. <li><p><strong>keep_vars</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><em>bool</em></a><em>, </em><em>optional</em>) – by default the <code class="xref py py-class docutils literal notranslate"><span class="pre">Tensor</span></code> s
  1063. returned in the state dict are detached from autograd. If it’s
  1064. set to <code class="docutils literal notranslate"><span class="pre">True</span></code>, detaching will not be performed.
  1065. Default: <code class="docutils literal notranslate"><span class="pre">False</span></code>.</p></li>
  1066. </ul>
  1067. </dd>
  1068. <dt class="field-even">Returns</dt>
  1069. <dd class="field-even"><p>a dictionary containing a whole state of the module</p>
  1070. </dd>
  1071. <dt class="field-odd">Return type</dt>
  1072. <dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#dict" title="(in Python v3.10)">dict</a></p>
  1073. </dd>
  1074. </dl>
  1075. <p>Example:</p>
  1076. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">module</span><span class="o">.</span><span class="n">state_dict</span><span class="p">()</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
  1077. <span class="go">[&#39;bias&#39;, &#39;weight&#39;]</span>
  1078. </pre></div>
  1079. </div>
  1080. </dd></dl>
  1081. <dl class="py method">
  1082. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.to">
  1083. <span class="sig-name descname"><span class="pre">to</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.to" title="Permalink to this definition">¶</a></dt>
  1084. <dd><p>Moves and/or casts the parameters and buffers.</p>
  1085. <p>This can be called as</p>
  1086. <dl class="py function">
  1087. <dt class="sig sig-object py">
  1088. <span class="sig-name descname"><span class="pre">to</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">device</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dtype</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">non_blocking</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span></dt>
  1089. <dd></dd></dl>
  1090. <dl class="py function">
  1091. <dt class="sig sig-object py">
  1092. <span class="sig-name descname"><span class="pre">to</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dtype</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">non_blocking</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span></dt>
  1093. <dd></dd></dl>
  1094. <dl class="py function">
  1095. <dt class="sig sig-object py">
  1096. <span class="sig-name descname"><span class="pre">to</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">tensor</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">non_blocking</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span></dt>
  1097. <dd></dd></dl>
  1098. <dl class="py function">
  1099. <dt class="sig sig-object py">
  1100. <span class="sig-name descname"><span class="pre">to</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">memory_format</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">torch.channels_last</span></span></em><span class="sig-paren">)</span></dt>
  1101. <dd></dd></dl>
  1102. <p>Its signature is similar to <code class="xref py py-meth docutils literal notranslate"><span class="pre">torch.Tensor.to()</span></code>, but only accepts
  1103. floating point or complex <code class="xref py py-attr docutils literal notranslate"><span class="pre">dtype</span></code>s. In addition, this method will
  1104. only cast the floating point or complex parameters and buffers to <code class="xref py py-attr docutils literal notranslate"><span class="pre">dtype</span></code>
  1105. (if given). The integral parameters and buffers will be moved
  1106. <code class="xref py py-attr docutils literal notranslate"><span class="pre">device</span></code>, if that is given, but with dtypes unchanged. When
  1107. <code class="xref py py-attr docutils literal notranslate"><span class="pre">non_blocking</span></code> is set, it tries to convert/move asynchronously
  1108. with respect to the host if possible, e.g., moving CPU Tensors with
  1109. pinned memory to CUDA devices.</p>
  1110. <p>See below for examples.</p>
  1111. <div class="admonition note">
  1112. <p class="admonition-title">Note</p>
  1113. <p>This method modifies the module in-place.</p>
  1114. </div>
  1115. <dl class="field-list simple">
  1116. <dt class="field-odd">Parameters</dt>
  1117. <dd class="field-odd"><ul class="simple">
  1118. <li><p><strong>device</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">torch.device</span></code>) – the desired device of the parameters
  1119. and buffers in this module</p></li>
  1120. <li><p><strong>dtype</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">torch.dtype</span></code>) – the desired floating point or complex dtype of
  1121. the parameters and buffers in this module</p></li>
  1122. <li><p><strong>tensor</strong> (<em>torch.Tensor</em>) – Tensor whose dtype and device are the desired
  1123. dtype and device for all parameters and buffers in this module</p></li>
  1124. <li><p><strong>memory_format</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">torch.memory_format</span></code>) – the desired memory
  1125. format for 4D parameters and buffers in this module (keyword
  1126. only argument)</p></li>
  1127. </ul>
  1128. </dd>
  1129. <dt class="field-even">Returns</dt>
  1130. <dd class="field-even"><p>self</p>
  1131. </dd>
  1132. <dt class="field-odd">Return type</dt>
  1133. <dd class="field-odd"><p>Module</p>
  1134. </dd>
  1135. </dl>
  1136. <p>Examples:</p>
  1137. <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">linear</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
  1138. <span class="gp">&gt;&gt;&gt; </span><span class="n">linear</span><span class="o">.</span><span class="n">weight</span>
  1139. <span class="go">Parameter containing:</span>
  1140. <span class="go">tensor([[ 0.1913, -0.3420],</span>
  1141. <span class="go"> [-0.5113, -0.2325]])</span>
  1142. <span class="gp">&gt;&gt;&gt; </span><span class="n">linear</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">double</span><span class="p">)</span>
  1143. <span class="go">Linear(in_features=2, out_features=2, bias=True)</span>
  1144. <span class="gp">&gt;&gt;&gt; </span><span class="n">linear</span><span class="o">.</span><span class="n">weight</span>
  1145. <span class="go">Parameter containing:</span>
  1146. <span class="go">tensor([[ 0.1913, -0.3420],</span>
  1147. <span class="go"> [-0.5113, -0.2325]], dtype=torch.float64)</span>
  1148. <span class="gp">&gt;&gt;&gt; </span><span class="n">gpu1</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">device</span><span class="p">(</span><span class="s2">&quot;cuda:1&quot;</span><span class="p">)</span>
  1149. <span class="gp">&gt;&gt;&gt; </span><span class="n">linear</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="n">gpu1</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="n">torch</span><span class="o">.</span><span class="n">half</span><span class="p">,</span> <span class="n">non_blocking</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
  1150. <span class="go">Linear(in_features=2, out_features=2, bias=True)</span>
  1151. <span class="gp">&gt;&gt;&gt; </span><span class="n">linear</span><span class="o">.</span><span class="n">weight</span>
  1152. <span class="go">Parameter containing:</span>
  1153. <span class="go">tensor([[ 0.1914, -0.3420],</span>
  1154. <span class="go"> [-0.5112, -0.2324]], dtype=torch.float16, device=&#39;cuda:1&#39;)</span>
  1155. <span class="gp">&gt;&gt;&gt; </span><span class="n">cpu</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">device</span><span class="p">(</span><span class="s2">&quot;cpu&quot;</span><span class="p">)</span>
  1156. <span class="gp">&gt;&gt;&gt; </span><span class="n">linear</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="n">cpu</span><span class="p">)</span>
  1157. <span class="go">Linear(in_features=2, out_features=2, bias=True)</span>
  1158. <span class="gp">&gt;&gt;&gt; </span><span class="n">linear</span><span class="o">.</span><span class="n">weight</span>
  1159. <span class="go">Parameter containing:</span>
  1160. <span class="go">tensor([[ 0.1914, -0.3420],</span>
  1161. <span class="go"> [-0.5112, -0.2324]], dtype=torch.float16)</span>
  1162. <span class="gp">&gt;&gt;&gt; </span><span class="n">linear</span> <span class="o">=</span> <span class="n">nn</span><span class="o">.</span><span class="n">Linear</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">bias</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">cdouble</span><span class="p">)</span>
  1163. <span class="gp">&gt;&gt;&gt; </span><span class="n">linear</span><span class="o">.</span><span class="n">weight</span>
  1164. <span class="go">Parameter containing:</span>
  1165. <span class="go">tensor([[ 0.3741+0.j, 0.2382+0.j],</span>
  1166. <span class="go"> [ 0.5593+0.j, -0.4443+0.j]], dtype=torch.complex128)</span>
  1167. <span class="gp">&gt;&gt;&gt; </span><span class="n">linear</span><span class="p">(</span><span class="n">torch</span><span class="o">.</span><span class="n">ones</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="n">torch</span><span class="o">.</span><span class="n">cdouble</span><span class="p">))</span>
  1168. <span class="go">tensor([[0.6122+0.j, 0.1150+0.j],</span>
  1169. <span class="go"> [0.6122+0.j, 0.1150+0.j],</span>
  1170. <span class="go"> [0.6122+0.j, 0.1150+0.j]], dtype=torch.complex128)</span>
  1171. </pre></div>
  1172. </div>
  1173. </dd></dl>
  1174. <dl class="py method">
  1175. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.to_empty">
  1176. <span class="sig-name descname"><span class="pre">to_empty</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">device</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Union" title="(in Python v3.10)"><span class="pre">Union</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">device</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">T</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.to_empty" title="Permalink to this definition">¶</a></dt>
  1177. <dd><p>Moves the parameters and buffers to the specified device without copying storage.</p>
  1178. <dl class="field-list simple">
  1179. <dt class="field-odd">Parameters</dt>
  1180. <dd class="field-odd"><p><strong>device</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">torch.device</span></code>) – The desired device of the parameters
  1181. and buffers in this module.</p>
  1182. </dd>
  1183. <dt class="field-even">Returns</dt>
  1184. <dd class="field-even"><p>self</p>
  1185. </dd>
  1186. <dt class="field-odd">Return type</dt>
  1187. <dd class="field-odd"><p>Module</p>
  1188. </dd>
  1189. </dl>
  1190. </dd></dl>
  1191. <dl class="py method">
  1192. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.train">
  1193. <span class="sig-name descname"><span class="pre">train</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mode</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</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">T</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.train" title="Permalink to this definition">¶</a></dt>
  1194. <dd><p>Sets the module in training mode.</p>
  1195. <p>This has any effect only on certain modules. See documentations of
  1196. particular modules for details of their behaviors in training/evaluation
  1197. mode, if they are affected, e.g. <code class="xref py py-class docutils literal notranslate"><span class="pre">Dropout</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">BatchNorm</span></code>,
  1198. etc.</p>
  1199. <dl class="field-list simple">
  1200. <dt class="field-odd">Parameters</dt>
  1201. <dd class="field-odd"><p><strong>mode</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><em>bool</em></a>) – whether to set training mode (<code class="docutils literal notranslate"><span class="pre">True</span></code>) or evaluation
  1202. mode (<code class="docutils literal notranslate"><span class="pre">False</span></code>). Default: <code class="docutils literal notranslate"><span class="pre">True</span></code>.</p>
  1203. </dd>
  1204. <dt class="field-even">Returns</dt>
  1205. <dd class="field-even"><p>self</p>
  1206. </dd>
  1207. <dt class="field-odd">Return type</dt>
  1208. <dd class="field-odd"><p>Module</p>
  1209. </dd>
  1210. </dl>
  1211. </dd></dl>
  1212. <dl class="py method">
  1213. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.type">
  1214. <span class="sig-name descname"><span class="pre">type</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dst_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Union" title="(in Python v3.10)"><span class="pre">Union</span></a><span class="p"><span class="pre">[</span></span><span class="pre">dtype</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.10)"><span class="pre">str</span></a><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">T</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.type" title="Permalink to this definition">¶</a></dt>
  1215. <dd><p>Casts all parameters and buffers to <code class="xref py py-attr docutils literal notranslate"><span class="pre">dst_type</span></code>.</p>
  1216. <div class="admonition note">
  1217. <p class="admonition-title">Note</p>
  1218. <p>This method modifies the module in-place.</p>
  1219. </div>
  1220. <dl class="field-list simple">
  1221. <dt class="field-odd">Parameters</dt>
  1222. <dd class="field-odd"><p><strong>dst_type</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#type" title="(in Python v3.10)"><em>type</em></a><em> or </em><em>string</em>) – the desired type</p>
  1223. </dd>
  1224. <dt class="field-even">Returns</dt>
  1225. <dd class="field-even"><p>self</p>
  1226. </dd>
  1227. <dt class="field-odd">Return type</dt>
  1228. <dd class="field-odd"><p>Module</p>
  1229. </dd>
  1230. </dl>
  1231. </dd></dl>
  1232. <dl class="py method">
  1233. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.xpu">
  1234. <span class="sig-name descname"><span class="pre">xpu</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">device</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Optional" title="(in Python v3.10)"><span class="pre">Optional</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Union" title="(in Python v3.10)"><span class="pre">Union</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.10)"><span class="pre">int</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">device</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><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">T</span></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.xpu" title="Permalink to this definition">¶</a></dt>
  1235. <dd><p>Moves all model parameters and buffers to the XPU.</p>
  1236. <p>This also makes associated parameters and buffers different objects. So
  1237. it should be called before constructing optimizer if the module will
  1238. live on XPU while being optimized.</p>
  1239. <div class="admonition note">
  1240. <p class="admonition-title">Note</p>
  1241. <p>This method modifies the module in-place.</p>
  1242. </div>
  1243. <dl class="field-list simple">
  1244. <dt class="field-odd">Parameters</dt>
  1245. <dd class="field-odd"><p><strong>device</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.10)"><em>int</em></a><em>, </em><em>optional</em>) – if specified, all parameters will be
  1246. copied to that device</p>
  1247. </dd>
  1248. <dt class="field-even">Returns</dt>
  1249. <dd class="field-even"><p>self</p>
  1250. </dd>
  1251. <dt class="field-odd">Return type</dt>
  1252. <dd class="field-odd"><p>Module</p>
  1253. </dd>
  1254. </dl>
  1255. </dd></dl>
  1256. <dl class="py method">
  1257. <dt class="sig sig-object py" id="draugr.torch_utilities.architectures.architecture.Architecture.zero_grad">
  1258. <span class="sig-name descname"><span class="pre">zero_grad</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">set_to_none</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><span class="pre">bool</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference external" href="https://docs.python.org/3/library/constants.html#None" title="(in Python v3.10)"><span class="pre">None</span></a></span></span><a class="headerlink" href="#draugr.torch_utilities.architectures.architecture.Architecture.zero_grad" title="Permalink to this definition">¶</a></dt>
  1259. <dd><p>Sets gradients of all model parameters to zero. See similar function
  1260. under <code class="xref py py-class docutils literal notranslate"><span class="pre">torch.optim.Optimizer</span></code> for more context.</p>
  1261. <dl class="field-list simple">
  1262. <dt class="field-odd">Parameters</dt>
  1263. <dd class="field-odd"><p><strong>set_to_none</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#bool" title="(in Python v3.10)"><em>bool</em></a>) – instead of setting to zero, set the grads to None.
  1264. See <code class="xref py py-meth docutils literal notranslate"><span class="pre">torch.optim.Optimizer.zero_grad()</span></code> for details.</p>
  1265. </dd>
  1266. </dl>
  1267. </dd></dl>
  1268. </dd></dl>
  1269. </section>
  1270. </div>
  1271. </div>
  1272. </div>
  1273. <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
  1274. <div class="sphinxsidebarwrapper">
  1275. <p class="logo"><a href="../index.html">
  1276. <img class="logo" src="../_static/valknut.svg" alt="Logo"/>
  1277. </a></p>
  1278. <h1 class="logo"><a href="../index.html">Draugr</a></h1>
  1279. <h3>Navigation</h3>
  1280. <ul class="current">
  1281. <li class="toctree-l1 current"><a class="reference internal" href="draugr.html">draugr</a><ul class="current">
  1282. <li class="toctree-l2"><a class="reference internal" href="draugr.dist_is_editable.html">draugr.dist_is_editable</a></li>
  1283. <li class="toctree-l2"><a class="reference internal" href="draugr.get_version.html">draugr.get_version</a></li>
  1284. <li class="toctree-l2"><a class="reference internal" href="draugr.dlib_utilities.html">draugr.dlib_utilities</a></li>
  1285. <li class="toctree-l2"><a class="reference internal" href="draugr.drawers.html">draugr.drawers</a></li>
  1286. <li class="toctree-l2"><a class="reference internal" href="draugr.entry_points.html">draugr.entry_points</a></li>
  1287. <li class="toctree-l2"><a class="reference internal" href="draugr.extensions.html">draugr.extensions</a></li>
  1288. <li class="toctree-l2"><a class="reference internal" href="draugr.ffmpeg_utilities.html">draugr.ffmpeg_utilities</a></li>
  1289. <li class="toctree-l2"><a class="reference internal" href="draugr.jax_utilities.html">draugr.jax_utilities</a></li>
  1290. <li class="toctree-l2"><a class="reference internal" href="draugr.metrics.html">draugr.metrics</a></li>
  1291. <li class="toctree-l2"><a class="reference internal" href="draugr.multiprocessing_utilities.html">draugr.multiprocessing_utilities</a></li>
  1292. <li class="toctree-l2"><a class="reference internal" href="draugr.numpy_utilities.html">draugr.numpy_utilities</a></li>
  1293. <li class="toctree-l2"><a class="reference internal" href="draugr.opencv_utilities.html">draugr.opencv_utilities</a></li>
  1294. <li class="toctree-l2"><a class="reference internal" href="draugr.os_utilities.html">draugr.os_utilities</a></li>
  1295. <li class="toctree-l2"><a class="reference internal" href="draugr.pandas_utilities.html">draugr.pandas_utilities</a></li>
  1296. <li class="toctree-l2"><a class="reference internal" href="draugr.pygame_utilities.html">draugr.pygame_utilities</a></li>
  1297. <li class="toctree-l2"><a class="reference internal" href="draugr.python_utilities.html">draugr.python_utilities</a></li>
  1298. <li class="toctree-l2"><a class="reference internal" href="draugr.random_utilities.html">draugr.random_utilities</a></li>
  1299. <li class="toctree-l2"><a class="reference internal" href="draugr.scipy_utilities.html">draugr.scipy_utilities</a></li>
  1300. <li class="toctree-l2"><a class="reference internal" href="draugr.stopping.html">draugr.stopping</a></li>
  1301. <li class="toctree-l2"><a class="reference internal" href="draugr.tensorboard_utilities.html">draugr.tensorboard_utilities</a></li>
  1302. <li class="toctree-l2"><a class="reference internal" href="draugr.threading_utilities.html">draugr.threading_utilities</a></li>
  1303. <li class="toctree-l2 current"><a class="reference internal" href="draugr.torch_utilities.html">draugr.torch_utilities</a><ul class="current">
  1304. <li class="toctree-l3 current"><a class="reference internal" href="draugr.torch_utilities.architectures.html">draugr.torch_utilities.architectures</a><ul class="current">
  1305. <li class="toctree-l4 current"><a class="reference internal" href="draugr.torch_utilities.architectures.architecture.html">draugr.torch_utilities.architectures.architecture</a><ul class="current">
  1306. <li class="toctree-l5 current"><a class="current reference internal" href="#">draugr.torch_utilities.architectures.architecture.Architecture</a></li>
  1307. </ul>
  1308. </li>
  1309. <li class="toctree-l4"><a class="reference internal" href="draugr.torch_utilities.architectures.distributional.html">draugr.torch_utilities.architectures.distributional</a></li>
  1310. <li class="toctree-l4"><a class="reference internal" href="draugr.torch_utilities.architectures.experimental.html">draugr.torch_utilities.architectures.experimental</a></li>
  1311. <li class="toctree-l4"><a class="reference internal" href="draugr.torch_utilities.architectures.mlp.html">draugr.torch_utilities.architectures.mlp</a></li>
  1312. <li class="toctree-l4"><a class="reference internal" href="draugr.torch_utilities.architectures.mlp_variants.html">draugr.torch_utilities.architectures.mlp_variants</a></li>
  1313. </ul>
  1314. </li>
  1315. <li class="toctree-l3"><a class="reference internal" href="draugr.torch_utilities.datasets.html">draugr.torch_utilities.datasets</a></li>
  1316. <li class="toctree-l3"><a class="reference internal" href="draugr.torch_utilities.distributions.html">draugr.torch_utilities.distributions</a></li>
  1317. <li class="toctree-l3"><a class="reference internal" href="draugr.torch_utilities.evaluation.html">draugr.torch_utilities.evaluation</a></li>
  1318. <li class="toctree-l3"><a class="reference internal" href="draugr.torch_utilities.exporting.html">draugr.torch_utilities.exporting</a></li>
  1319. <li class="toctree-l3"><a class="reference internal" href="draugr.torch_utilities.generators.html">draugr.torch_utilities.generators</a></li>
  1320. <li class="toctree-l3"><a class="reference internal" href="draugr.torch_utilities.images.html">draugr.torch_utilities.images</a></li>
  1321. <li class="toctree-l3"><a class="reference internal" href="draugr.torch_utilities.opencv.html">draugr.torch_utilities.opencv</a></li>
  1322. <li class="toctree-l3"><a class="reference internal" href="draugr.torch_utilities.operations.html">draugr.torch_utilities.operations</a></li>
  1323. <li class="toctree-l3"><a class="reference internal" href="draugr.torch_utilities.optimisation.html">draugr.torch_utilities.optimisation</a></li>
  1324. <li class="toctree-l3"><a class="reference internal" href="draugr.torch_utilities.persistence.html">draugr.torch_utilities.persistence</a></li>
  1325. <li class="toctree-l3"><a class="reference internal" href="draugr.torch_utilities.sessions.html">draugr.torch_utilities.sessions</a></li>
  1326. <li class="toctree-l3"><a class="reference internal" href="draugr.torch_utilities.system.html">draugr.torch_utilities.system</a></li>
  1327. <li class="toctree-l3"><a class="reference internal" href="draugr.torch_utilities.tensors.html">draugr.torch_utilities.tensors</a></li>
  1328. <li class="toctree-l3"><a class="reference internal" href="draugr.torch_utilities.writers.html">draugr.torch_utilities.writers</a></li>
  1329. </ul>
  1330. </li>
  1331. <li class="toctree-l2"><a class="reference internal" href="draugr.tqdm_utilities.html">draugr.tqdm_utilities</a></li>
  1332. <li class="toctree-l2"><a class="reference internal" href="draugr.visualisation.html">draugr.visualisation</a></li>
  1333. <li class="toctree-l2"><a class="reference internal" href="draugr.writers.html">draugr.writers</a></li>
  1334. </ul>
  1335. </li>
  1336. </ul>
  1337. <p class="caption" role="heading"><span class="caption-text">Notes</span></p>
  1338. <ul>
  1339. <li class="toctree-l1"><a class="reference internal" href="../getting_started.html">Getting Started</a></li>
  1340. </ul>
  1341. <div class="relations">
  1342. <h3>Related Topics</h3>
  1343. <ul>
  1344. <li><a href="../index.html">Documentation overview</a><ul>
  1345. <li><a href="draugr.html">draugr</a><ul>
  1346. <li><a href="draugr.torch_utilities.html">draugr.torch_utilities</a><ul>
  1347. <li><a href="draugr.torch_utilities.architectures.html">draugr.torch_utilities.architectures</a><ul>
  1348. <li><a href="draugr.torch_utilities.architectures.architecture.html">draugr.torch_utilities.architectures.architecture</a><ul>
  1349. <li>Previous: <a href="draugr.torch_utilities.architectures.architecture.html" title="previous chapter">draugr.torch_utilities.architectures.architecture</a></li>
  1350. <li>Next: <a href="draugr.torch_utilities.architectures.distributional.html" title="next chapter">draugr.torch_utilities.architectures.distributional</a></li>
  1351. </ul></li>
  1352. </ul></li>
  1353. </ul></li>
  1354. </ul></li>
  1355. </ul></li>
  1356. </ul>
  1357. </div>
  1358. <div id="searchbox" style="display: none" role="search">
  1359. <h3 id="searchlabel">Quick search</h3>
  1360. <div class="searchformwrapper">
  1361. <form class="search" action="../search.html" method="get">
  1362. <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
  1363. <input type="submit" value="Go" />
  1364. </form>
  1365. </div>
  1366. </div>
  1367. <script>document.getElementById('searchbox').style.display = "block"</script>
  1368. </div>
  1369. </div>
  1370. <div class="clearer"></div>
  1371. </div>
  1372. <div class="footer">
  1373. &copy;.
  1374. |
  1375. Powered by <a href="http://sphinx-doc.org/">Sphinx 5.0.2</a>
  1376. &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
  1377. |
  1378. <a href="../_sources/generated/draugr.torch_utilities.architectures.architecture.Architecture.rst.txt"
  1379. rel="nofollow">Page source</a>
  1380. </div>
  1381. </body>
  1382. </html>