<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Tom B Brown on Medium]]></title>
        <description><![CDATA[Stories by Tom B Brown on Medium]]></description>
        <link>https://medium.com/@nottombrown?source=rss-34104be7c4e------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*nOyhiBMar34eznJy562bUw.jpeg</url>
            <title>Stories by Tom B Brown on Medium</title>
            <link>https://medium.com/@nottombrown?source=rss-34104be7c4e------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 23 Jun 2026 02:52:34 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@nottombrown/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[How I made the switch to AI Research]]></title>
            <link>https://medium.com/tom-b-brown/how-i-made-the-switch-to-ai-research-ad5778636783?source=rss-34104be7c4e------2</link>
            <guid isPermaLink="false">https://medium.com/p/ad5778636783</guid>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[Tom B Brown]]></dc:creator>
            <pubDate>Thu, 03 Aug 2017 17:38:01 GMT</pubDate>
            <atom:updated>2017-08-03T17:38:01.840Z</atom:updated>
            <content:encoded><![CDATA[<p>[Cross post from <a href="https://medium.com/@southparkcommons">https://medium.com/@southparkcommons</a>]</p><p>In 2015, I wanted to help with AI research, but taking the first steps felt daunting. I’d graduated from MIT then spent eight years building web startups. I’d put in my 10,000 hours, gotten funding from Y Combinator and grown a company to thirty people. Moving to research felt like starting over in my career. Was it really a good idea to throw away years of work?</p><p>A friend told me about South Park Commons (SPC), a new space for people who were taking the first steps on a new path, and introduced me to Ruchi, the founder. Ruchi is super impressive, she was one of the earliest Facebook engineers, and had founded and sold a successful company. She also has a high-bandwidth and disarmingly direct communication style that I found refreshing.</p><p>Over lunch, Ruchi described South Park Commons as a community in which<em>everyone</em> is starting over. Starting over is in fact the main thing that unifies the group. For example, two current Commons members are Jason, the maintainer of a popular open-source project <a href="https://quilljs.com/">Quill</a>, who’s been learning to do enterprise sales, and Malcolm, a successful infrastructure engineer who’s starting a fund <a href="https://strong-atomics.com/">Strong Atomics</a> to invest in nuclear fusion companies.</p><p>I joined South Park Commons, blocked off three months to see if I could make progress, and made a plan to teach myself machine learning. Several other SPC members were interested in the space, so we started going through a curriculum of courses and organized a paper reading group. As soon as I got over the fear and took the plunge, things got vastly easier. Six months of focused work later, I had a position at OpenAI.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WJd7A1T2N9l4Uw5PR92L1A.jpeg" /><figcaption>South Park Commons members in the park</figcaption></figure><p>If you’re thinking about switching into the field of AI, here are some resources that were useful to me in getting started</p><ul><li>Stanford’s <a href="http://cs231n.github.io/">CS231n — Convolutional Neural Networks for Visual Recognition</a></li><li><a href="https://www.quora.com/What-are-the-best-ways-to-pick-up-Deep-Learning-skills-as-an-engineer">Greg Brockman’s Quora post on picking up Deep Learning skills as an engineer</a></li><li><a href="https://80000hours.org/ai-safety-syllabus/#reading-list">80000 Hours AI Safety Syllabus</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ad5778636783" width="1" height="1" alt=""><hr><p><a href="https://medium.com/tom-b-brown/how-i-made-the-switch-to-ai-research-ad5778636783">How I made the switch to AI Research</a> was originally published in <a href="https://medium.com/tom-b-brown">Tom B Brown</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ML Tidbits: Nondeterminism on the GPU]]></title>
            <link>https://medium.com/tom-b-brown/tensorflow-nondeterminism-on-the-gpu-a0e86125fd06?source=rss-34104be7c4e------2</link>
            <guid isPermaLink="false">https://medium.com/p/a0e86125fd06</guid>
            <category><![CDATA[tensorflow]]></category>
            <category><![CDATA[reinforcement-learning]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[Tom B Brown]]></dc:creator>
            <pubDate>Fri, 09 Jun 2017 23:44:23 GMT</pubDate>
            <atom:updated>2017-06-10T00:11:52.290Z</atom:updated>
            <content:encoded><![CDATA[<p>For the last year I’ve been in RL world. There we always make sure to set our seeds for determinism, and make sure we get absolutely reproducible results. E.g. we will make sure to run np.random.seed(42), and double check that our algorithm is deterministic end to end.</p><p>In RL, we usually run algorithms on the CPU because we’re usually data-starved (limited by the speed at which the environment generates data). In image classification, everything is on the GPU, so I wrote a basic algorithm, then tried to set things up for determinism. No such luck — It turns out there’s no easy way to get determinism on the GPU.</p><p>For example, doing backprop through a simple reduction operation is nondeterministic.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/29659b5b8a28855a02046dc873400ed1/href">https://medium.com/media/29659b5b8a28855a02046dc873400ed1/href</a></iframe><p>Running it outputs the following:</p><pre>CPU (deterministic)<br>23.066511<br>23.066511<br>23.066511<br>23.066511</pre><pre>GPU (nondeterministic)<br>23.066513<br>23.066511<br>23.066509<br>23.066513</pre><p>This isn’t a bug that will be fixed. There’s a fundamental tradeoff between speed and determinism. From <a href="https://github.com/yaroslavvb">@yaroslavb</a>:</p><blockquote>Floating point math is non-associative, and if you want speed, you use intermediate results as soon as they arrive on multiple cores, so you get slightly different answers, which get blown up later</blockquote><p>When you’re using GPUs, you can’t get determinism without making your code 10x slower, defeating the whole point of GPUs.</p><p>So I’m giving up on determinism for image classification now. Best alternative so far: Run multiple seeds of the algorithm and overlay them:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/682/1*Yl8ZyGKITwyu3900Evj-NQ.png" /><figcaption>Various algorithms on multiple seeds</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a0e86125fd06" width="1" height="1" alt=""><hr><p><a href="https://medium.com/tom-b-brown/tensorflow-nondeterminism-on-the-gpu-a0e86125fd06">ML Tidbits: Nondeterminism on the GPU</a> was originally published in <a href="https://medium.com/tom-b-brown">Tom B Brown</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Dreamers]]></title>
            <link>https://medium.com/@nottombrown/dreamers-b22819d840bc?source=rss-34104be7c4e------2</link>
            <guid isPermaLink="false">https://medium.com/p/b22819d840bc</guid>
            <category><![CDATA[love]]></category>
            <category><![CDATA[death]]></category>
            <category><![CDATA[dreams]]></category>
            <dc:creator><![CDATA[Tom B Brown]]></dc:creator>
            <pubDate>Tue, 08 Mar 2016 23:48:25 GMT</pubDate>
            <atom:updated>2016-03-08T23:48:25.925Z</atom:updated>
            <content:encoded><![CDATA[<p>Once upon a time there was a boy who loved a girl, and her laughter was a question he wanted to spend his whole life answering.</p><p>He started slow, but soon had her trust, and together they began to weave their dreams. Their dreams were of adventures and far off lands. They would be Egyptian lovers in ancient times, or sworn enemies fighting great battles. The girl was a horse and the boy was her keeper. The girl was a bumblebee and the boy was a flower. They were siblings and rivals and predators and prey.</p><p>In a night’s sleep together they’d each experience a lifetime. Sometimes the lives were short and vivid, sometimes they were long and sprawling. During their dream, they’d forget that they were dreaming. And sometimes they’d be pulled apart. The boy would die in an accident. The girl would be killed by a jealous lover. But no matter how long each life took, they would always live the whole life, and awaken at the same moment, holding each other in a tight embrace.</p><p>And together, they lived a million million lives, outlandish ones and plain ones. They learned more about each other than anyone had ever learned about anyone else before. And then one day, the girl suggested something that they’d both been thinking for a long time. The dream that they had seen in their periphery, but had always avoided. The boy was scared. There was more that they still hadn’t experienced together.</p><p>And yet, stronger than his fear, the boy still wanted to answer the question of her laughter. So they laid down side-by-side, and dreamt of being each other.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b22819d840bc" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>