def set_ops(self, indexes): """Set the operations for each node of each cell of the search_space. Args: indexes (list): element of list can be float in [0, 1] or int. Raises: WrongSequenceToSetOperations: raised when 'indexes' is of a wrong length. """ if len(indexes) != len(list(self.variable_nodes)): raise WrongSequenceToSetOperations(indexes, list(self.variable_nodes)) for op_i, node in zip(indexes, self.variable_nodes): node.set_op(op_i) output_nodes = self.get_output_nodes() self.output_node = self.set_output_node(self.graph, output_nodes)
def denormalize(self, indexes): """Denormalize a sequence of normalized indexes to get a sequence of absolute indexes. Useful when you want to compare the number of different search_spaces. Args: indexes (Iterable): a sequence of normalized indexes. Returns: list: A list of absolute indexes corresponding to operations choosen with relative indexes of `indexes`. """ assert isinstance( indexes, Iterable ), 'Wrong argument, "indexes" should be of Iterable.' if len(indexes) != self.num_nodes: raise WrongSequenceToSetOperations(indexes, list(self.variable_nodes)) return [ vnode.denormalize(op_i) for op_i, vnode in zip(indexes, self.variable_nodes) ]