diff options
Diffstat (limited to 'tensorflow/g3doc/tutorials/mandelbrot/index.md')
-rwxr-xr-x | tensorflow/g3doc/tutorials/mandelbrot/index.md | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/tensorflow/g3doc/tutorials/mandelbrot/index.md b/tensorflow/g3doc/tutorials/mandelbrot/index.md new file mode 100755 index 0000000000..7c6adcb4e8 --- /dev/null +++ b/tensorflow/g3doc/tutorials/mandelbrot/index.md @@ -0,0 +1,97 @@ + + +``` +#Import libraries for simulation +import tensorflow as tf +import numpy as np + +#Imports for visualization +import PIL.Image +from cStringIO import StringIO +from IPython.display import clear_output, Image, display +import scipy.ndimage as nd +``` + + +``` +def DisplayFractal(a, fmt='jpeg'): + """Display an array of iteration counts as a + colorful picture of a fractal.""" + a_cyclic = (6.28*a/20.0).reshape(list(a.shape)+[1]) + img = np.concatenate([10+20*np.cos(a_cyclic), + 30+50*np.sin(a_cyclic), + 155-80*np.cos(a_cyclic)], 2) + img[a==a.max()] = 0 + a = img + a = np.uint8(np.clip(a, 0, 255)) + f = StringIO() + PIL.Image.fromarray(a).save(f, fmt) + display(Image(data=f.getvalue())) +``` + + +``` +sess = tf.InteractiveSession() +``` + + Exception AssertionError: AssertionError() in <bound method InteractiveSession.__del__ of <tensorflow.python.client.session.InteractiveSession object at 0x6247390>> ignored + + + +``` +# Use NumPy to create a 2D array of complex numbers on [-2,2]x[-2,2] + +Y, X = np.mgrid[-1.3:1.3:0.005, -2:1:0.005] +Z = X+1j*Y +``` + + +``` +xs = tf.constant(Z.astype("complex64")) +zs = tf.Variable(xs) +ns = tf.Variable(tf.zeros_like(xs, "float32")) +``` + + +``` +tf.InitializeAllVariables().run() +``` + + +``` +# Compute the new values of z: z^2 + x +zs_ = zs*zs + xs + +# Have we diverged with this new value? +not_diverged = tf.complex_abs(zs_) < 4 + +# Operation to update the zs and the iteration count. +#t +# Note: We keep computing zs after they diverge! This +# is very wasteful! There are better, if a little +# less simple, ways to do this. +# +step = tf.group( + zs.assign(zs_), + ns.assign_add(tf.cast(not_diverged, "float32")) + ) +``` + + +``` +for i in range(200): step.run() +``` + + +``` +DisplayFractal(ns.eval()) +``` + + +![jpeg](output_8_0.jpe) + + + +``` + +``` |