I am looking at the following function:
# Initialize a network
def initialize_network(n_inputs, n_hidden, n_outputs):
network = list()
hidden_layer = [{'weights':[random() for i in range(n_inputs + 1)]} for i in range(n_hidden)]
network.append(hidden_layer)
output_layer = [{'weights':[random() for i in range(n_hidden + 1)]} for i in range(n_outputs)]
network.append(output_layer)
return network
However, I am particularly stuck on the [{'weights':[random() for i in range(n_inputs + 1)]} for i in range(n_hidden)]
line. I am trying to recreate that single line into a function:
def make_weights(n_inputs, n_hidden):
# for i in range(n_inputs + 1):
# make a random number?
# for i in range(n_hidden):
# make a random number?
# return array of random numbers?
However, I don't quite understand what that single line is doing. It is looping through the number of inputs + 1 times, and creating a random number? And then is doing the same for the number of hidden inputs?
I am seeking an explanation of that single line, and helping to map that one line into a much cleaner function.
Resources used so far: