in LaNAS/Distributed_LaNAS/clientX/nasnet_set.py [0:0]
def translator(code, max_node=6):
# input: code type
# output: geno type
n = 0
normal = []
normal_concat = []
reduce_concat = []
for i in range(max_node+2):
normal_concat.append(i)
reduce_concat.append(i)
reduce = []
for cell in range(len(code)):
if cell == 0: # for normal cell
for block in range(len(code[cell])):
normal.append((operations[code[cell][block][0]], code[cell][block][2]))
normal.append((operations[code[cell][block][1]], code[cell][block][3]))
if code[cell][block][2] in normal_concat:
normal_concat.remove(code[cell][block][2])
if code[cell][block][3] in normal_concat:
normal_concat.remove(code[cell][block][3])
else: # for reduction cell
for block in range(len(code[cell])):
reduce.append((operations[code[cell][block][0]], code[cell][block][2]))
reduce.append((operations[code[cell][block][1]], code[cell][block][3]))
if code[cell][block][2] in reduce_concat:
reduce_concat.remove(code[cell][block][2])
if code[cell][block][3] in reduce_concat:
reduce_concat.remove(code[cell][block][3])
if 0 in reduce_concat:
reduce_concat.remove(0)
if 1 in reduce_concat:
reduce_concat.remove(1)
gen_type = Genotype(normal=normal, normal_concat=normal_concat, reduce=reduce, reduce_concat=reduce_concat)
# print(normal, normal_concat, reduce, reduce_concat)
return gen_type