【发布时间】:2019-09-12 05:45:06
【问题描述】:
此函数有 3 种模式,即 'hh' 'ih' 和 'ho'。
def mutate_add_connection(self, mode = 'hh'):
if mode == 'hh': # hidden --> hidden
node_a = random.choice(self.hidden_nodes_dict.values())
node_b = random.choice(self.hidden_nodes_dict.values())
self.connect_node_pair(node_a,node_b, 'sort')
elif mode == 'ih': # input --> hidden
node_a = random.choice(self.input_nodes_dict.values())
node_b = random.choice(self.hidden_nodes_dict.values())
node_b.set_links((node_a,random.choice([-1, 1])))
elif mode == 'ho': # hidden --> output
node_b.set_links((node_a,random.choice([-1, 1])))
node_a = random.choice(self.hidden_nodes_dict.values())
node_b = random.choice(self.output_nodes_dict.values())
在添加连接变异的实践中,我需要有一定概率使用这三种模式。更不用说每种模式的 33.33%。
所以我打算在这个函数中添加一个“自动”模式。为了“随机”调用上面的3种模式。
def mutate_add_connection(self, mode = 'hh'):
if mode == 'auto':
chosen_mode = random.choice(['hh','ih','ho'])
self.mutate_add_connection(mode=chosen_mode)
# the code above .......
但我不确定这是否是个好主意。你能提出一个更好的方法来实现我的建议吗?谢谢~
【问题讨论】: