inits.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. import tensorflow as tf
  2. import numpy as np
  3. import math
  4. def uniform(shape, scale=0.05, name=None):
  5. """Uniform init."""
  6. initial = tf.random_uniform(shape, minval=-scale, maxval=scale, dtype=tf.float32)
  7. return tf.Variable(initial, name=name)
  8. def glorot(shape, name=None):
  9. """Glorot & Bengio (AISTATS 2010) init."""
  10. init_range = np.sqrt(6.0/(shape[0]+shape[1]))
  11. initial = tf.random_uniform(shape, minval=-init_range, maxval=init_range, dtype=tf.float32)
  12. return tf.Variable(initial, name=name)
  13. def zeros(shape, name=None):
  14. """All zeros."""
  15. initial = tf.zeros(shape, dtype=tf.float32)
  16. return tf.Variable(initial, name=name)
  17. def ones(shape, name=None):
  18. """All ones."""
  19. initial = tf.ones(shape, dtype=tf.float32)
  20. return tf.Variable(initial, name=name)
  21. def trunc_normal(shape, name=None, normalize=True):
  22. initial = tf.Variable(tf.truncated_normal(shape, stddev=1.0 / math.sqrt(shape[0])))
  23. if not normalize: return initial
  24. return tf.nn.l2_normalize(initial, 1)