Skip to content

Instantly share code, notes, and snippets.

@vrjkmr
Created September 4, 2017 03:06
Show Gist options
  • Save vrjkmr/7c1a82776a53a3864e151b18a0db553c to your computer and use it in GitHub Desktop.
Save vrjkmr/7c1a82776a53a3864e151b18a0db553c to your computer and use it in GitHub Desktop.
def initialize_parameters():
'''
Initializes parameters to build a neural network with tensorflow. The shapes are:
W1 : [n_hidden_1, n_input]
b1 : [n_hidden_1, 1]
W2 : [n_hidden_2, n_hidden_1]
b2 : [n_hidden_2, 1]
W3 : [n_classes, n_hidden_2]
b3 : [n_classes, 1]
Returns:
parameters -- a dictionary of tensors containing W1, b1, W2, b2, W3, b3
'''
# Set random seed for reproducibility
tf.set_random_seed(42)
# Initialize weights and biases for each layer
# First hidden layer
W1 = tf.get_variable("W1", [n_hidden_1, n_input], initializer=tf.contrib.layers.xavier_initializer(seed=42))
b1 = tf.get_variable("b1", [n_hidden_1, 1], initializer=tf.zeros_initializer())
# Second hidden layer
W2 = tf.get_variable("W2", [n_hidden_2, n_hidden_1], initializer=tf.contrib.layers.xavier_initializer(seed=42))
b2 = tf.get_variable("b2", [n_hidden_2, 1], initializer=tf.zeros_initializer())
# Output layer
W3 = tf.get_variable("W3", [n_classes, n_hidden_2], initializer=tf.contrib.layers.xavier_initializer(seed=42))
b3 = tf.get_variable("b3", [n_classes, 1], initializer=tf.zeros_initializer())
# Store initializations as a dictionary of parameters
parameters = {
"W1": W1,
"b1": b1,
"W2": W2,
"b2": b2,
"W3": W3,
"b3": b3
}
return parameters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment