{ "cells": [ { "cell_type": "raw", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ ".. _neural-networks-case-study:\n", "\n", "Generating Neural Network Diagrams\n", "==================================\n", "\n", "The following explores how Toyplot's graph visualization can be used to generate high-quality diagrams of neural networks." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Network Data\n", "\n", "First, we will define the edges (weights) in our network, by explicitly listing the source and target for each edge:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy\n", "import toyplot\n", "\n", "numpy.random.seed(1234)\n", "\n", "edges = numpy.array([\n", " [\"x0\", \"a0\"],\n", " [\"x0\", \"a1\"],\n", " [\"x0\", \"a2\"],\n", " [\"x0\", \"a3\"],\n", " [\"x1\", \"a0\"],\n", " [\"x1\", \"a1\"],\n", " [\"x1\", \"a2\"],\n", " [\"x1\", \"a3\"],\n", " [\"x2\", \"a0\"],\n", " [\"x2\", \"a1\"],\n", " [\"x2\", \"a2\"],\n", " [\"x2\", \"a3\"],\n", " [\"a0\", \"y0\"],\n", " [\"a0\", \"y1\"],\n", " [\"a1\", \"y0\"],\n", " [\"a1\", \"y1\"],\n", " [\"a2\", \"y0\"],\n", " [\"a2\", \"y1\"],\n", " [\"a3\", \"y0\"],\n", " [\"a3\", \"y1\"],\n", "])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Network Layout\n", "\n", "As a straw-man, we can quickly render a graph using just the edge data:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "