【发布时间】:2019-04-23 13:21:29
【问题描述】:
我在看下面的函数:
# 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
但是,我特别卡在[{'weights':[random() for i in range(n_inputs + 1)]} for i in range(n_hidden)] 行。我正在尝试将该单行重新创建为一个函数:
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?
但是,我不太明白那条线在做什么。它循环输入的数量+ 1次,并创建一个随机数?然后对隐藏输入的数量做同样的事情吗?
我正在寻求对那条线的解释,并帮助将那条线映射成更清晰的函数。
目前使用的资源:
【问题讨论】:
-
[random() for i in range(n_inputs + 1)]创建一个n_inputs + 1随机元素列表(每个元素相互独立生成),[{'weights':[...]} for i in range(n_hidden)]创建一个n_hidden字典列表,其中每个字典包含一个键'weights',与n_inputs + 1随机生成的元素列表相关联。
标签: python python-3.x for-loop