Mandelbrot Set In TensorFlow – Compute Quickly

Stay updated with the latest technology trends while you're on the move - Join DataFlair's Telegram Channel

1. Objective

Today, in this TensorFlow Tutorial, we will see TensorFlow Mandelbrot Set. We’ll be visualizing the famous Chaos Theory Mandelbrot Set in TensorFlow. Moreover, in this TensorFlow Mandelbrot set. We will see the set up for Mandelbrot Set and session and variable initialization in TensorFlow. Along with this, we will also look at the what Mandelbrot set actually is and computation of Mandelbrot Set in TensorFlow with an example.
Let’s discuss Tensorflow Applications
So, let’s begin TensorFlow Mandelbrot Set.

Mandelbrot Set in TensorFlow

Mandelbrot Set in TensorFlow Compute Quickly

2. What is Mandelbrot Set?

According to Wikipedia, “The Mandelbrot set is a famous example of a fractal in mathematics. The Mandelbrot set is important for the chaos theory. The edging of the set shows a self-similarity, which is not perfect because it has deformations. The Mandelbrot set can be explained with the equation zn+1 = zn2 + c. In that equation, c and z are complex numbers and n is zero or a positive integer (natural number). Starting with z0=0, c is in the Mandelbrot set if the absolute value of zn never becomes larger than a certain number (that number depends on c), no matter how large n gets.”
Explore TensorFlow Features with us

TensorFlow Mandelbrot Set

TensorFlow Mandelbrot Set

Visualizing the set has nothing to do with machine learning. It can be thought of as another TensorFlow example for mathematics. So, let’s learn how can we compute Mandelbrot set in TensorFlow.

3. Setup For Mandelbrot Set in TensorFlow

For Mandelbrot Set in TensorFlow, you’ll need a few imports to get started.

# Import libraries for simulation
import tensorflow as tf
import numpy as np
# Imports for visualization
import PIL.Image
from io import BytesIO
from IPython.display import Image, display

Now, define a function to actually display the image once you have iteration counts.

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 = BytesIO()
  PIL.Image.fromarray(a).save(f, fmt)
  display(Image(data=f.getvalue()))

Do you want to learn MNIST Dataset follow the link

4. Session & Variable Initialization in Mandelbrot Set

Here an interactive session is used, but a regular session would work as well.

sess = tf.InteractiveSession()

Introducing NumPy with Tensorflow.

# Use NumPy to create a 2D array of complex numbers
Y, X = np.mgrid[-1.3:1.3:0.005, -2:1:0.005]
Z = X+1j*Y

Initializing TensorFlow tensors.

xs = tf.constant(Z.astype(np.complex64))
zs = tf.Variable(xs)
ns = tf.Variable(tf.zeros_like(xs, tf.float32))

Now, as you already aware that TensorFlow requires you to explicitly declare variables before using them.

tf.global_variables_initializer().run()

5. Running Computation – TensorFlow Mandelbrot Set

Now, we specify more of the computation for Mandelbrot set in TensorFlow.
Let’s revise TensorFlow Image Recognition Using – Python & C++

# Compute the new values of z: z^2 + x
zs_ = zs*zs + xs
# Have we diverged with this new value?
not_diverged = tf.abs(zs_) < 4
# Operation to update the zs and the iteration count.
#
# 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, tf.float32))
  )

and we run it for a couple hundred iterations:
for i in range(200): step.run()

Then, displaying the result using:
DisplayFractal(ns.eval())

Mandelbrot Set in TensorFlow- Running the Computation

Mandelbrot Set in TensorFlow- Running the Computation

So, this was all about Mandelbrot Set in TensorFlow. Hope you like and understand our explanation of computing Mandelbrot Set using TensorFlow.

6. Conclusion: TensorFlow Mandelbrot Set

Hence, we saw the concept of Mandelbrot Set in TensorFlow, just like the Mandelbrot Set solution. TensorFlow proves to be a great tool for visualizing and understanding not only machine learning concepts but complex mathematical functions including random processes and graph theory. At last, we discussed how to run the computation for TensorFlow Mandelbrot Set. Next up, is solving PDEs using TensorFlow. Furthermore, for any query regarding Mandelbrot Set in TensorFlow, feel free to ask in the comment section.
See also- 
Read Recurrent Neural Network TensorFlow
For reference 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.