Beispiel #1
0
    def _searchSpaceList(self, space: SearchSpaceArray, *,
                         size: int) -> List[SearchSpaceGrid]:
        sub_spaces = space.items(max=size)

        param_grids: List[List[SearchSpaceGrid]] = [
            nest_all_HPparams(
                str(index), self.fixupDegenerateSearchSpaces(accept(sub,
                                                                    self)))
            for index, sub in enumerate(sub_spaces)
        ]

        param_grids_product: Iterable[
            Iterable[SearchSpaceGrid]] = itertools.product(*param_grids)
        chained_grids: List[SearchSpaceGrid] = [
            dict(ChainMap(*gridline, )) for gridline in param_grids_product
        ]

        if space.is_tuple:
            st_val = structure_type_tuple
        else:
            st_val = structure_type_list

        discriminated_grids: List[SearchSpaceGrid] = [{
            **d, structure_type_name:
            SearchSpaceConstant(st_val)
        } for d in chained_grids]

        return discriminated_grids
Beispiel #2
0
 def array_single_str_(self,
                       space: SearchSpaceArray,
                       path: str,
                       num,
                       useCounter=True) -> str:
     p = _mk_label(path, num, useCounter=useCounter) + "_"
     ret = "(" if space.is_tuple else "["
     items: Iterable[SearchSpace] = space.items()
     ret += ",".join((accept(sub, self, p, counter=x, useCounter=useCounter)
                      for x, sub in enumerate(items)))
     ret += ")" if space.is_tuple else "]"
     return ret
Beispiel #3
0
 def array_single_expr_(self, space: SearchSpaceArray, path: str, num):
     p = _mk_label(path, num) + "_"
     items: Iterable[SearchSpace] = space.items()
     ret = [accept(sub, self, p, counter=x) for x, sub in enumerate(items)]
     return tuple(ret) if space.is_tuple else ret