<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Gradients on AIBussin — AI applications, systems and books</title><link>https://aibussin.com/tags/gradients/</link><description>Recent content in Gradients on AIBussin — AI applications, systems and books</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Sat, 29 Aug 2026 14:00:00 +0100</lastBuildDate><atom:link href="https://aibussin.com/tags/gradients/index.xml" rel="self" type="application/rss+xml"/><item><title>What Are We Actually Doing?</title><link>https://aibussin.com/books/pytorch-from-first-principles/01-chapter/</link><pubDate>Sat, 08 Aug 2026 12:40:00 +0100</pubDate><guid>https://aibussin.com/books/pytorch-from-first-principles/01-chapter/</guid><description>&lt;p&gt;It has never been easier to obtain working PyTorch code. Describe a model to an assistant, paste the result into a file, and a training loop will usually appear and usually run. For a large fraction of everyday work this is fine, and this book does not ask you to pretend otherwise.&lt;/p&gt;&#10;&lt;p&gt;The difficulty arrives afterwards.&lt;/p&gt;&#10;&lt;p&gt;The code runs, but the loss sits at exactly the same value for two hundred steps. Or one tensor is &lt;code&gt;[32, 128]&lt;/code&gt; where the next operation wanted &lt;code&gt;[128, 32]&lt;/code&gt;. Or the gradient of a weight is &lt;code&gt;None&lt;/code&gt; and nothing says why. Or the model trained yesterday and today it does not, with no change you can point to. None of these are syntax errors. They do not produce a helpful traceback, and often they produce no traceback at all. They are questions about what the program is doing, and to answer them you need somewhere to look.&lt;/p&gt;</description></item><item><title>Autograd: What Did PyTorch Record, and Where Does the Gradient Stop?</title><link>https://aibussin.com/books/pytorch-from-first-principles/03-chapter/</link><pubDate>Sat, 08 Aug 2026 12:55:00 +0100</pubDate><guid>https://aibussin.com/books/pytorch-from-first-principles/03-chapter/</guid><description>&lt;p&gt;Here is a training loop with two parameters. It runs, it does not warn, and the loss goes to zero.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; torch&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x &lt;span style="color:#f92672"&gt;=&lt;/span&gt; torch&lt;span style="color:#f92672"&gt;.&lt;/span&gt;tensor([&lt;span style="color:#ae81ff"&gt;1.0&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;2.0&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;3.0&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;4.0&lt;/span&gt;])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;target &lt;span style="color:#f92672"&gt;=&lt;/span&gt; torch&lt;span style="color:#f92672"&gt;.&lt;/span&gt;tensor([&lt;span style="color:#ae81ff"&gt;3.0&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;6.0&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;9.0&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;12.0&lt;/span&gt;])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;w1 &lt;span style="color:#f92672"&gt;=&lt;/span&gt; torch&lt;span style="color:#f92672"&gt;.&lt;/span&gt;tensor(&lt;span style="color:#ae81ff"&gt;0.5&lt;/span&gt;, requires_grad&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;True&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;w2 &lt;span style="color:#f92672"&gt;=&lt;/span&gt; torch&lt;span style="color:#f92672"&gt;.&lt;/span&gt;tensor(&lt;span style="color:#ae81ff"&gt;1.0&lt;/span&gt;, requires_grad&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;True&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;params &lt;span style="color:#f92672"&gt;=&lt;/span&gt; [w1, w2]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;feature_log &lt;span style="color:#f92672"&gt;=&lt;/span&gt; []&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;def&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;stage_one&lt;/span&gt;(t):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; f &lt;span style="color:#f92672"&gt;=&lt;/span&gt; w1 &lt;span style="color:#f92672"&gt;*&lt;/span&gt; t&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; detached &lt;span style="color:#f92672"&gt;=&lt;/span&gt; f&lt;span style="color:#f92672"&gt;.&lt;/span&gt;detach() &lt;span style="color:#75715e"&gt;# keep the values for later inspection&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; feature_log&lt;span style="color:#f92672"&gt;.&lt;/span&gt;append(detached)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; detached&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;learning_rate &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0.02&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; step &lt;span style="color:#f92672"&gt;in&lt;/span&gt; range(&lt;span style="color:#ae81ff"&gt;400&lt;/span&gt;):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; f &lt;span style="color:#f92672"&gt;=&lt;/span&gt; stage_one(x)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; prediction &lt;span style="color:#f92672"&gt;=&lt;/span&gt; w2 &lt;span style="color:#f92672"&gt;*&lt;/span&gt; f&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; loss &lt;span style="color:#f92672"&gt;=&lt;/span&gt; ((prediction &lt;span style="color:#f92672"&gt;-&lt;/span&gt; target) &lt;span style="color:#f92672"&gt;**&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;)&lt;span style="color:#f92672"&gt;.&lt;/span&gt;mean()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; loss&lt;span style="color:#f92672"&gt;.&lt;/span&gt;backward()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; torch&lt;span style="color:#f92672"&gt;.&lt;/span&gt;no_grad():&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; p &lt;span style="color:#f92672"&gt;in&lt;/span&gt; params:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; p&lt;span style="color:#f92672"&gt;.&lt;/span&gt;grad &lt;span style="color:#f92672"&gt;is&lt;/span&gt; &lt;span style="color:#f92672"&gt;not&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;None&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p &lt;span style="color:#f92672"&gt;-=&lt;/span&gt; learning_rate &lt;span style="color:#f92672"&gt;*&lt;/span&gt; p&lt;span style="color:#f92672"&gt;.&lt;/span&gt;grad&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#f92672"&gt;.&lt;/span&gt;grad&lt;span style="color:#f92672"&gt;.&lt;/span&gt;zero_()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; step &lt;span style="color:#f92672"&gt;in&lt;/span&gt; (&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;9&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;99&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;399&lt;/span&gt;):&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print(&lt;span style="color:#e6db74"&gt;f&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;step=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;{&lt;/span&gt;step&lt;span style="color:#e6db74"&gt;:&lt;/span&gt;&lt;span style="color:#e6db74"&gt;3d&lt;/span&gt;&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt; loss=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;{&lt;/span&gt;loss&lt;span style="color:#f92672"&gt;.&lt;/span&gt;item()&lt;span style="color:#e6db74"&gt;:&lt;/span&gt;&lt;span style="color:#e6db74"&gt;.6f&lt;/span&gt;&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt; &amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;f&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;w1=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;{&lt;/span&gt;w1&lt;span style="color:#f92672"&gt;.&lt;/span&gt;item()&lt;span style="color:#e6db74"&gt;:&lt;/span&gt;&lt;span style="color:#e6db74"&gt;.4f&lt;/span&gt;&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt; w2=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;{&lt;/span&gt;w2&lt;span style="color:#f92672"&gt;.&lt;/span&gt;item()&lt;span style="color:#e6db74"&gt;:&lt;/span&gt;&lt;span style="color:#e6db74"&gt;.4f&lt;/span&gt;&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;step= 0 loss=46.875000 w1=0.5000 w2=1.3750&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;step= 9 loss=11.521060 w1=0.5000 w2=3.7071&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;step= 99 loss=0.000009 w1=0.5000 w2=5.9979&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;step=399 loss=0.000000 w1=0.5000 w2=6.0000&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Read the columns the way Chapter 1 taught. The loss falls to zero, which is the outcome we asked for. And &lt;code&gt;w1&lt;/code&gt; never moves. Not slowly, not by a little: it holds &lt;code&gt;0.5000&lt;/code&gt; for four hundred steps while &lt;code&gt;w2&lt;/code&gt; climbs to exactly &lt;code&gt;6.0&lt;/code&gt;, which is the value that makes &lt;code&gt;w1 * w2&lt;/code&gt; equal to the &lt;code&gt;3&lt;/code&gt; we were trying to learn. Half the model was frozen, the other half absorbed the entire job, and the objective was satisfied anyway.&lt;/p&gt;</description></item><item><title>Training: Which Link in the Learning Chain Is Broken?</title><link>https://aibussin.com/books/pytorch-from-first-principles/11-chapter/</link><pubDate>Sat, 29 Aug 2026 14:00:00 +0100</pubDate><guid>https://aibussin.com/books/pytorch-from-first-principles/11-chapter/</guid><description>&lt;p&gt;Here is an ordinary piece of transfer-learning code. A small model, a frozen feature extractor, an optimizer, and a new classification head for the new task.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;model &lt;span style="color:#f92672"&gt;=&lt;/span&gt; TinyClassifier()&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; p &lt;span style="color:#f92672"&gt;in&lt;/span&gt; model&lt;span style="color:#f92672"&gt;.&lt;/span&gt;features&lt;span style="color:#f92672"&gt;.&lt;/span&gt;parameters():&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#f92672"&gt;.&lt;/span&gt;requires_grad_(&lt;span style="color:#66d9ef"&gt;False&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;optimizer &lt;span style="color:#f92672"&gt;=&lt;/span&gt; torch&lt;span style="color:#f92672"&gt;.&lt;/span&gt;optim&lt;span style="color:#f92672"&gt;.&lt;/span&gt;AdamW(model&lt;span style="color:#f92672"&gt;.&lt;/span&gt;parameters(), lr&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1e-2&lt;/span&gt;, weight_decay&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0.0&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;model&lt;span style="color:#f92672"&gt;.&lt;/span&gt;head &lt;span style="color:#f92672"&gt;=&lt;/span&gt; nn&lt;span style="color:#f92672"&gt;.&lt;/span&gt;Linear(&lt;span style="color:#ae81ff"&gt;32&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;) &lt;span style="color:#75715e"&gt;# adaptation, performed later&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Train it for two hundred steps on a balanced, perfectly aligned, entirely learnable binary task:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;step= 0 loss=0.683606 acc=0.7144&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;step= 50 loss=0.683606 acc=0.7144&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;step= 100 loss=0.683606 acc=0.7144&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;step= 150 loss=0.683606 acc=0.7144&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;step= 200 loss=0.683606 acc=0.7144&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Not approximately constant. Identical to six decimal places, two hundred times.&lt;/p&gt;</description></item><item><title>PACS — Building an Optimizer From Gradient Statistics</title><link>https://aibussin.com/books/models-from-first-principles/08-chapter/</link><pubDate>Sat, 08 Aug 2026 15:05:00 +0100</pubDate><guid>https://aibussin.com/books/models-from-first-principles/08-chapter/</guid><description>&lt;h1 id="pacs--building-an-optimizer-from-gradient-statistics"&gt;PACS — Building an Optimizer From Gradient Statistics&lt;/h1&gt;&#10;&lt;p&gt;So far in &lt;strong&gt;Models From First Principles&lt;/strong&gt;, every post has asked some version of the same question:&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;What should the model compute?&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;MR.Q gave us a scalar quality estimate.&lt;/p&gt;&#10;&lt;p&gt;EBT split one shared representation into Q, V and Policy.&lt;/p&gt;&#10;&lt;p&gt;SICQL made those heads explicit, replaceable components.&lt;/p&gt;&#10;&lt;p&gt;HRM introduced repeated computation over fast and slow latent states.&lt;/p&gt;&#10;&lt;p&gt;Tiny compressed iterative refinement into one recursive latent state.&lt;/p&gt;</description></item><item><title>PyTorch Model Not Learning? A Systematic Debugging Guide</title><link>https://aibussin.com/post/pytorch-zero-to-hero-08/</link><pubDate>Sat, 08 Aug 2026 13:51:00 +0100</pubDate><guid>https://aibussin.com/post/pytorch-zero-to-hero-08/</guid><description>&lt;h2 id="pytorch-zero-to-hero--step-08"&gt;PyTorch: Zero to Hero — Step 08&lt;/h2&gt;&#10;&lt;p&gt;Your model runs.&lt;/p&gt;&#10;&lt;p&gt;The loss is finite.&lt;/p&gt;&#10;&lt;p&gt;Nothing crashes.&lt;/p&gt;&#10;&lt;p&gt;And it still does not learn.&lt;/p&gt;&#10;&lt;p&gt;This is one of the most frustrating states in machine learning because there is no stack trace telling you what is wrong.&lt;/p&gt;&#10;&lt;p&gt;The program is valid Python.&lt;/p&gt;&#10;&lt;p&gt;The tensors have legal shapes.&lt;/p&gt;&#10;&lt;p&gt;The GPU is busy.&lt;/p&gt;&#10;&lt;p&gt;The optimizer is stepping.&lt;/p&gt;&#10;&lt;p&gt;And the model is useless.&lt;/p&gt;&#10;&lt;p&gt;This post is a systematic way to debug that situation.&lt;/p&gt;</description></item><item><title>PyTorch Autograd Debugging: requires_grad, detach, backward() and NaN Gradients</title><link>https://aibussin.com/post/pytorch-zero-to-hero-02/</link><pubDate>Sat, 08 Aug 2026 12:55:00 +0100</pubDate><guid>https://aibussin.com/post/pytorch-zero-to-hero-02/</guid><description>&lt;h2 id="pytorch-zero-to-hero--step-02"&gt;PyTorch: Zero to Hero — Step 02&lt;/h2&gt;&#10;&lt;p&gt;In the previous post we treated tensor shapes as a debugging problem rather than a mathematical vocabulary exercise.&lt;/p&gt;&#10;&lt;p&gt;We are going to do the same thing with autograd.&lt;/p&gt;&#10;&lt;p&gt;If you use PyTorch for any serious amount of time, you eventually see errors like:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;or:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;RuntimeError: Trying to backward through the graph a second time...&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;or worse:&lt;/p&gt;</description></item></channel></rss>