<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>autodiff on Tom Roth</title><link>https://tomroth.dev/tags/autodiff/</link><description>Recent content in autodiff on Tom Roth</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Thu, 16 Feb 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://tomroth.dev/tags/autodiff/index.xml" rel="self" type="application/rss+xml"/><item><title>Building a computational graph: part 3</title><link>https://tomroth.dev/compgraph3/</link><pubDate>Thu, 16 Feb 2023 00:00:00 +0000</pubDate><guid>https://tomroth.dev/compgraph3/</guid><description>This is the third part of a series on creating a computational graph in Python. You can go back to part one and part two.
There&amp;rsquo;s a bit of code in this post. Here is the final code in np_wrapping.py. The module for numpy_autograd is here.
In the last post we created computational graphs for a function, but it was a bit hard to use. We also had these problems:</description></item><item><title>Building a computational graph: part 2</title><link>https://tomroth.dev/compgraph2/</link><pubDate>Wed, 15 Feb 2023 00:00:00 +0000</pubDate><guid>https://tomroth.dev/compgraph2/</guid><description>This is the second post in a series on computational graphs. You can go back to the previous post or ahead to the next post.
If you&amp;rsquo;d like to see what we are working towards in these posts, here is the Github link:
Last time we
looked at computational graphs and their use in autodiff packages. looked at the autodiff problem and the structure of the grad function in autograd showed how Python breaks down expressions to create computational graphs created a simple graph manually using a simplified Node class How do we automatically create a computational graph for a function?</description></item><item><title>Building a computational graph: part 1</title><link>https://tomroth.dev/compgraph1/</link><pubDate>Tue, 14 Feb 2023 00:00:00 +0000</pubDate><guid>https://tomroth.dev/compgraph1/</guid><description>This is the first post in a series on computational graphs. You can go to the next post or skip ahead to the third post.
If you&amp;rsquo;d like to see what we are working towards in these posts, here is the Github link:
Computation graphs have many uses. Here I&amp;rsquo;ll be presenting it as they used for autodifferentiation.
For this post, I&amp;rsquo;ll assume you have some familiarity with backpropagation and autodifferentiation (also known as autodiff).</description></item><item><title>Backprop and topological sorting</title><link>https://tomroth.dev/backprop-toposort/</link><pubDate>Sun, 01 Dec 2019 00:00:00 +0000</pubDate><guid>https://tomroth.dev/backprop-toposort/</guid><description>Neural networks need to update their weights with respect to a loss function. Rather than compute these weight updates manually, today we usually use automatic differentiation packages and tools. We call these autodiff systems.
To do their job, autodiff systems construct computational graphs of the function they’re trying to find the gradient of. These computational graphs are key to backpropagation. I won’t go into how these graphs are constructed here.</description></item></channel></rss>