0

有人可以帮忙解释一下这是什么意思。

背景:“网络”是一个类,代表一个神经网络对象,它的构造函数需要几个输入,例如;节点、输入、输出、num_functions 等。但是,我用作参考的 python 实现使用字典将这些参数加载到构造函数中(我相信这是怎么回事)。任何人都可以帮助解释这是如何工作的network(**config)?附言。我正在将其转换为 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!
4

1 回答 1

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')
于 2013-08-06T14:12:55.590 回答