0 votes
1 view
in Machine Learning by (17.3k points)

tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

outputs random values from a normal distribution.

tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

outputs random values from a truncated normal distribution.

I tried googling 'truncated normal distribution'. But didn't understand much.

1 Answer

0 votes
by (33.2k points)

Truncated normal distribution:

The values generated from this function follows a normal distribution with specified mean and standard deviation, except that values whose magnitude is more than 2 standard deviations from the mean are dropped and re-picked.

image

It is easy to understand the difference by plotting the graph for yourself (%magic is used because I use jupyter notebook):


 

Code to plot graph:

import tensorflow as tf

import matplotlib.pyplot as plt

 %matplotlib inline

n = 500000

A = tf.truncated_normal((n,)) 

B = tf.random_normal((n,)) 

with tf.Session() as sess: 

a, b = sess.run([A, B])

plt.hist(a, 100, (-4.2, 4.2)); plt.hist(b, 100, (-4.2, 4.2));

enter image description here

The raeson for using truncated normal is to overcome saturation of time functions like sigmoid.

Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...