def node_name(node_index): name = generate_name_from(inputs[node_index], input_node_map) if name in names_used: name = generate_name_from(name, input_node_map, suffix=fused_ops[node_index - 2]) names_used.add(name) return name
def node_name(i): name = util.generate_name_from(inputs[i], input_node_map) if name in names_used: # avoid name collisions by adding the name of the fused operation # (the first name is always unique) name = util.generate_name_from(name, input_node_map, suffix=fused_ops[i-2]) names_used.add(name) return name
def node_name(node_index): """Return unique node names for sub-operations by appending fused-op""" i = min(node_index, len(inputs)-1) # PReLU has 4 inputs, others only 3 name = generate_name_from(inputs[i], input_node_map) if name in names_used: name = generate_name_from(name, input_node_map, suffix=fused_ops[node_index-2]) names_used.add(name) return name
def test_generate_name_from_given_unique_name(self): """generate_name_from should return base name if name is unique""" # case #1: no slashes in name, name is unique -> return as-is node_map = {} base_name = 'name_without_slahes' name = rewrite.generate_name_from(base_name, node_map) self.assertEqual(name, base_name) # case #2: no slashes in name, name in map, name + suffix unique node_map[base_name] = rewrite.make_op_node('Neg', 'x', name=base_name) suffix = 'uniq' name = rewrite.generate_name_from(base_name, node_map, suffix=suffix) self.assertEqual(name, f'{base_name}/{suffix}') # case #3: slashes in name, name with slashes in map -> return 1st part base_name = 'name/suffix' node_map[base_name] = rewrite.make_op_node('Neg', 'y', name=base_name) name = rewrite.generate_name_from(base_name, node_map) self.assertEqual(name, 'name') # case #4: slashes in name, name in map, name + suffix unique base_name = 'name/suffix/op' name = rewrite.generate_name_from(base_name, node_map, suffix='uniq') self.assertEqual(name, 'name/suffix/uniq')
def test_generate_name_from_given_duplicate_name(self): """generate_name_from should return new name if base name is taken""" node_map = {} # case #1: name without slashes -> return name + count base_name = 'name_without_slashes' node_map[base_name] = rewrite.make_op_node('Neg', 'x', name='_') name = rewrite.generate_name_from(base_name, node_map) self.assertEqual(name, base_name + '_1') # case #2: count needs to increment node_map[name] = rewrite.make_op_node('Neg', 'y', name='_') name = rewrite.generate_name_from(base_name, node_map) self.assertEqual(name, base_name + '_2') # case #3: name + suffix -> return name + suffix + count suffix = 'suffix' node_map[base_name + '/' + suffix] = rewrite.make_op_node('Inv', 'x', name='_') name = rewrite.generate_name_from(base_name, node_map, suffix=suffix) self.assertEqual(name, f'{base_name}/{suffix}_1') # case #4: count needs to increment node_map[name] = rewrite.make_op_node('Inv', 'y', name='_') name = rewrite.generate_name_from(base_name, node_map, suffix=suffix) self.assertEqual(name, f'{base_name}/{suffix}_2') # case #5: slashes in name, name in map -> return name + count base_name = 'name_without_slashes/suffix' name = rewrite.generate_name_from(base_name, node_map) self.assertEqual(name, 'name_without_slashes_2') # case #6: slashes in name, name + suffix in map -> name+suffix+count base_name = 'name_without_slashes/suffix' name = rewrite.generate_name_from(base_name, node_map, suffix=suffix) self.assertEqual(name, f'{base_name}_2')
def _get_name(suffix): return generate_name_from(node.name, input_node_map, suffix=suffix)
def _get_name(suffix): return rewrite.generate_name_from(node.name, input_map, f'logSigmoid/{suffix}')