有人可以帮助解释这意味着什么。
背景:'network'是一个类,代表一个神经网络对象,它的构造函数需要几个输入,如;节点,输入,输出,num_functions等。但是,我用作参考的python实现使用字典将这些参数加载到构造函数中(我相信这是最新的)。任何人都可以帮助解释这是如何工作的网络(**配置)? PS。我正在将它转换为Java。
网络类的构造函数如下所示:
public network(int _graph_length, int _input_length, int _output_length, int _max_arity, int _function_length){
词典这样做:
output is a dictionary used to store data.
config is a dictionary uses to load parameters for the NN.
我不明白的代码是:
//Output data reset:
output.put("skipped", 0);
output.put("estimated", 0);
//if single mutation method:
if (config.get("speed") == "single"){
network.mutate = network.one_active_mutation;
}
parent = network(**config);
yield parent;
while true:
//code to evolve networks here!
答案 0 :(得分:1)
network(**config)
会解压缩字典config
并使用该字典中的键值对作为network
的参数。
例如,这些都会对func
进行相同的调用:
def func(foo, bar):
print foo, bar
d = {'foo': 'value1', 'bar': 'value2'}
func(**d)
func(**{'bar': 'value2', 'foo': 'value1'})
func(bar='value2', foo='value1')
func('value1', 'value2')