From f10219a1ced49a44476b2a99588973598910bd45 Mon Sep 17 00:00:00 2001 From: Akimasa KIMURA Date: Mon, 20 Feb 2017 11:14:51 +0900 Subject: [PATCH] Update examples --- README.rst | 8 +- examples/jupyter_sample.ipynb | 898 +++++++++++++++++++++++++++++++++- 2 files changed, 903 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index 6b74bc1..8d76e49 100644 --- a/README.rst +++ b/README.rst @@ -2,7 +2,7 @@ tfgraphviz ================ -A simple graphviz wrapper to visualize a graph like TensorBoard +A simple graphviz wrapper to visualize a graph like TensorFlow and TensorBoard tfgraphviz is a module to create a TensorBoard-ish graph in the DOT language of the Graphviz. tfgraphviz provides a visualization of tensorflow graph on Jupyter Notebook without TensorBoard. @@ -11,6 +11,7 @@ Links - GitHub: http://github.com/akimach/tfgraphviz - PyPI: https://pypi.python.org/pypi/tfgraphviz +- Jupyter Notebook: https://nbviewer.jupyter.org/github/akimach/tfgraphviz/blob/master/examples/jupyter_sample.ipynb Installation ------------ @@ -43,3 +44,8 @@ License ------- This package is distributed under the MIT license. + +Author +------- + +Akimasa KIMURA diff --git a/examples/jupyter_sample.ipynb b/examples/jupyter_sample.ipynb index 7657dba..cffe368 100644 --- a/examples/jupyter_sample.ipynb +++ b/examples/jupyter_sample.ipynb @@ -108,7 +108,7 @@ "\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 4, @@ -352,7 +352,7 @@ "\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 7, @@ -363,6 +363,900 @@ "source": [ "tfg.board(reg_g)" ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "G\n", + "\n", + "\n", + "cluster_6\n", + "\n", + "random_uniform\n", + "\n", + "\n", + "cluster_0\n", + "\n", + "sub\n", + "\n", + "\n", + "cluster_1\n", + "\n", + "GradientDescent\n", + "\n", + "\n", + "cluster_2\n", + "\n", + "Variable_1\n", + "\n", + "\n", + "cluster_3\n", + "\n", + "Variable\n", + "\n", + "\n", + "cluster_4\n", + "\n", + "mul\n", + "\n", + "\n", + "cluster_5\n", + "\n", + "gradients\n", + "\n", + "\n", + "\n", + "Square\n", + "\n", + "Square\n", + "\n", + "\n", + "\n", + "Mean\n", + "\n", + "Mean\n", + "\n", + "\n", + "\n", + "Square->Mean\n", + "\n", + "\n", + "100\n", + "\n", + "\n", + "\n", + "Const\n", + "\n", + "Const\n", + "\n", + "\n", + "\n", + "Const->Mean\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n", + "add\n", + "\n", + "add\n", + "\n", + "\n", + "\n", + "sub\n", + "\n", + "sub\n", + "\n", + "\n", + "\n", + "add->sub\n", + "\n", + "\n", + "100\n", + "\n", + "\n", + "\n", + "zeros\n", + "\n", + "zeros\n", + "\n", + "\n", + "\n", + "Variable_1/Assign\n", + "\n", + "Assign\n", + "\n", + "\n", + "\n", + "zeros->Variable_1/Assign\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n", + "sub/y\n", + "\n", + "y\n", + "\n", + "\n", + "\n", + "sub/y->sub\n", + "\n", + "\n", + "100\n", + "\n", + "\n", + "\n", + "sub->Square\n", + "\n", + "\n", + "100\n", + "\n", + "\n", + "\n", + "gradients/Square_grad\n", + "\n", + "Square_grad\n", + "\n", + "\n", + "\n", + "sub->gradients/Square_grad\n", + "\n", + "\n", + "100\n", + "\n", + "\n", + "\n", + "GradientDescent/update_Variable_1\n", + "\n", + "update_Variable_1\n", + "\n", + "\n", + "\n", + "GradientDescent/learning_rate\n", + "\n", + "learning_rate\n", + "\n", + "\n", + "\n", + "GradientDescent/learning_rate->GradientDescent/update_Variable_1\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "GradientDescent/update_Variable\n", + "\n", + "update_Variable\n", + "\n", + "\n", + "\n", + "GradientDescent/learning_rate->GradientDescent/update_Variable\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "GradientDescent\n", + "\n", + "GradientDescent\n", + "\n", + "\n", + "\n", + "Variable_1/read\n", + "\n", + "read\n", + "\n", + "\n", + "\n", + "Variable_1/read->add\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n", + "Variable_1\n", + "\n", + "Variable_1\n", + "\n", + "\n", + "\n", + "Variable_1->GradientDescent/update_Variable_1\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n", + "Variable_1->Variable_1/Assign\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n", + "Variable_1->Variable_1/read\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n", + "Variable/read\n", + "\n", + "read\n", + "\n", + "\n", + "\n", + "mul\n", + "\n", + "mul\n", + "\n", + "\n", + "\n", + "Variable/read->mul\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n", + "gradients/mul_grad\n", + "\n", + "mul_grad\n", + "\n", + "\n", + "\n", + "Variable/read->gradients/mul_grad\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n", + "Variable/Assign\n", + "\n", + "Assign\n", + "\n", + "\n", + "\n", + "Variable\n", + "\n", + "Variable\n", + "\n", + "\n", + "\n", + "Variable->GradientDescent/update_Variable\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n", + "Variable->Variable/read\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n", + "Variable->Variable/Assign\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n", + "mul/y\n", + "\n", + "y\n", + "\n", + "\n", + "\n", + "mul/y->mul\n", + "\n", + "\n", + "100\n", + "\n", + "\n", + "\n", + "mul/y->gradients/mul_grad\n", + "\n", + "\n", + "100\n", + "\n", + "\n", + "\n", + "mul->add\n", + "\n", + "\n", + "100\n", + "\n", + "\n", + "\n", + "gradients/Mean_grad\n", + "\n", + "Mean_grad\n", + "\n", + "\n", + "\n", + "gradients/Mean_grad->gradients/Square_grad\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "gradients/Shape\n", + "\n", + "Shape\n", + "\n", + "\n", + "\n", + "gradients/Fill\n", + "\n", + "Fill\n", + "\n", + "\n", + "\n", + "gradients/Shape->gradients/Fill\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "\n", + "gradients/Fill->gradients/Mean_grad\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "gradients/add_grad\n", + "\n", + "add_grad\n", + "\n", + "\n", + "\n", + "gradients/add_grad->GradientDescent/update_Variable_1\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "gradients/add_grad->gradients/mul_grad\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "gradients/sub_grad\n", + "\n", + "sub_grad\n", + "\n", + "\n", + "\n", + "gradients/sub_grad->gradients/add_grad\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "gradients/Square_grad->gradients/sub_grad\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "gradients/Const\n", + "\n", + "Const\n", + "\n", + "\n", + "\n", + "gradients/Const->gradients/Fill\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "gradients/mul_grad->GradientDescent/update_Variable\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "gradients\n", + "\n", + "gradients\n", + "\n", + "\n", + "\n", + "random_uniform/sub\n", + "\n", + "sub\n", + "\n", + "\n", + "\n", + "random_uniform/mul\n", + "\n", + "mul\n", + "\n", + "\n", + "\n", + "random_uniform/sub->random_uniform/mul\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "random_uniform/RandomUniform\n", + "\n", + "RandomUniform\n", + "\n", + "\n", + "\n", + "random_uniform/RandomUniform->random_uniform/mul\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n", + "random_uniform\n", + "\n", + "random_uniform\n", + "\n", + "\n", + "\n", + "random_uniform/mul->random_uniform\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n", + "random_uniform/min\n", + "\n", + "min\n", + "\n", + "\n", + "\n", + "random_uniform/min->random_uniform/sub\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "random_uniform/min->random_uniform\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "random_uniform/max\n", + "\n", + "max\n", + "\n", + "\n", + "\n", + "random_uniform/max->random_uniform/sub\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "random_uniform/shape\n", + "\n", + "shape\n", + "\n", + "\n", + "\n", + "random_uniform/shape->random_uniform/RandomUniform\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n", + "random_uniform->Variable/Assign\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tfg.board(reg_g, depth=2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "\n", + "## MNIST For ML Beginners\n", + "\n", + "https://www.tensorflow.org/get_started/mnist/beginners" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "mnist_g = tf.Graph()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "with mnist_g.as_default():\n", + " x = tf.placeholder(tf.float32, [None, 784])\n", + " W = tf.Variable(tf.zeros([784, 10]))\n", + " b = tf.Variable(tf.zeros([10]))\n", + " y = tf.nn.softmax(tf.matmul(x, W) + b)\n", + " y_ = tf.placeholder(tf.float32, [None, 10])\n", + " cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))\n", + " train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "G\n", + "\n", + "\n", + "\n", + "GradientDescent\n", + "\n", + "GradientDescent\n", + "\n", + "\n", + "\n", + "Const\n", + "\n", + "Const\n", + "\n", + "\n", + "\n", + "Mean\n", + "\n", + "Mean\n", + "\n", + "\n", + "\n", + "Const->Mean\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "\n", + "Log\n", + "\n", + "Log\n", + "\n", + "\n", + "\n", + "mul\n", + "\n", + "mul\n", + "\n", + "\n", + "\n", + "Log->mul\n", + "\n", + "\n", + "?×10\n", + "\n", + "\n", + "\n", + "gradients\n", + "\n", + "gradients\n", + "\n", + "\n", + "\n", + "Log->gradients\n", + "\n", + "\n", + "?×10\n", + "\n", + "\n", + "\n", + "Neg\n", + "\n", + "Neg\n", + "\n", + "\n", + "\n", + "Neg->gradients\n", + "\n", + "\n", + "?\n", + "\n", + "\n", + "\n", + "Neg->Mean\n", + "\n", + "\n", + "?\n", + "\n", + "\n", + "\n", + "Sum\n", + "\n", + "Sum\n", + "\n", + "\n", + "\n", + "Sum->Neg\n", + "\n", + "\n", + "?\n", + "\n", + "\n", + "\n", + "Sum->gradients\n", + "\n", + "\n", + "?\n", + "\n", + "\n", + "\n", + "MatMul\n", + "\n", + "MatMul\n", + "\n", + "\n", + "\n", + "add\n", + "\n", + "add\n", + "\n", + "\n", + "\n", + "MatMul->add\n", + "\n", + "\n", + "?×10\n", + "\n", + "\n", + "\n", + "MatMul->gradients\n", + "\n", + "\n", + "?×10\n", + "\n", + "\n", + "\n", + "Placeholder_1\n", + "\n", + "Placeholder_1\n", + "\n", + "\n", + "\n", + "Placeholder_1->mul\n", + "\n", + "\n", + "?×10\n", + "\n", + "\n", + "\n", + "Placeholder_1->gradients\n", + "\n", + "\n", + "?×10\n", + "\n", + "\n", + "\n", + "zeros_1\n", + "\n", + "zeros_1\n", + "\n", + "\n", + "\n", + "Variable_1\n", + "\n", + "Variable_1\n", + "\n", + "\n", + "\n", + "zeros_1->Variable_1\n", + "\n", + "\n", + "10\n", + "\n", + "\n", + "\n", + "Softmax\n", + "\n", + "Softmax\n", + "\n", + "\n", + "\n", + "add->Softmax\n", + "\n", + "\n", + "?×10\n", + "\n", + "\n", + "\n", + "zeros\n", + "\n", + "zeros\n", + "\n", + "\n", + "\n", + "Variable\n", + "\n", + "Variable\n", + "\n", + "\n", + "\n", + "zeros->Variable\n", + "\n", + "\n", + "784×10\n", + "\n", + "\n", + "\n", + "Softmax->Log\n", + "\n", + "\n", + "?×10\n", + "\n", + "\n", + "\n", + "Softmax->gradients\n", + "\n", + "\n", + "?×10\n", + "\n", + "\n", + "\n", + "Variable_1->GradientDescent\n", + "\n", + "\n", + "10\n", + "\n", + "\n", + "\n", + "Variable_1->add\n", + "\n", + "\n", + "10\n", + "\n", + "\n", + "\n", + "Variable->GradientDescent\n", + "\n", + "\n", + "784×10\n", + "\n", + "\n", + "\n", + "Variable->MatMul\n", + "\n", + "\n", + "784×10\n", + "\n", + "\n", + "\n", + "Variable->gradients\n", + "\n", + "\n", + "784×10\n", + "\n", + "\n", + "\n", + "mul->Sum\n", + "\n", + "\n", + "?×10\n", + "\n", + "\n", + "\n", + "mul->gradients\n", + "\n", + "\n", + "?×10\n", + "\n", + "\n", + "\n", + "gradients->GradientDescent\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Placeholder\n", + "\n", + "Placeholder\n", + "\n", + "\n", + "\n", + "Placeholder->MatMul\n", + "\n", + "\n", + "?×784\n", + "\n", + "\n", + "\n", + "Placeholder->gradients\n", + "\n", + "\n", + "?×784\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tfg.board(mnist_g, depth=1)" + ] } ], "metadata": {