@@ -652,7 +652,6 @@ def _check_configuration(self, vector: np.ndarray,
652652 for ch in unconditional_hyperparameters :
653653 active [self ._hyperparameter_idx [ch ]] = 1
654654
655- #for hp_name, hyperparameter in self._hyperparameters.items():
656655 while len (to_visit ) > 0 :
657656 hp_name = to_visit .pop ()
658657 hp_idx = self ._hyperparameter_idx [hp_name ]
@@ -669,7 +668,6 @@ def _check_configuration(self, vector: np.ndarray,
669668 for child in children :
670669 if child .name not in inactive :
671670 parents = self ._parents_of [child .name ]
672- hyperparameter_idx = self ._hyperparameter_idx [child .name ]
673671 if len (parents ) == 1 :
674672 conditions = self ._parent_conditions_of [child .name ]
675673 add = True
@@ -678,7 +676,9 @@ def _check_configuration(self, vector: np.ndarray,
678676 add = False
679677 inactive .add (child .name )
680678 break
681- if add == True :
679+ if add :
680+ hyperparameter_idx = self ._hyperparameter_idx [
681+ child .name ]
682682 active [hyperparameter_idx ] = 1
683683 to_visit .appendleft (child .name )
684684
@@ -693,7 +693,9 @@ def _check_configuration(self, vector: np.ndarray,
693693 inactive .add (child .name )
694694 break
695695
696- if add == True :
696+ if add :
697+ hyperparameter_idx = self ._hyperparameter_idx [
698+ child .name ]
697699 active [hyperparameter_idx ] = 1
698700 to_visit .appendleft (child .name )
699701
@@ -886,47 +888,43 @@ def sample_configuration(self, size: int = 1) -> Union['Configuration', List['Co
886888 visited .add (hp )
887889 children = self ._children_of [hp ]
888890 for child in children :
889- if child .name not in inactive :
890- parents = self ._parents_of [child .name ]
891- hyperparameter_idx = self ._hyperparameter_idx [child .name ]
891+ child_name = child .name
892+ if child_name not in inactive :
893+ parents = self ._parents_of [child_name ]
894+ hyperparameter_idx = self ._hyperparameter_idx [child_name ]
892895 if len (parents ) == 1 :
893- conditions = self ._parent_conditions_of [child . name ]
896+ conditions = self ._parent_conditions_of [child_name ]
894897 add = True
895898 for condition in conditions :
896899 if not condition .evaluate_vector (vector [i ]):
897900 add = False
898901 vector [i ][hyperparameter_idx ] = np .NaN
899- inactive .add (child . name )
902+ inactive .add (child_name )
900903 break
901904 if add == True :
902905 active [hyperparameter_idx ] = 1
903- hps .appendleft (child . name )
906+ hps .appendleft (child_name )
904907
905908 else :
906909 parent_names = set (p .name for p in parents )
907- # if not parent_names <= set(hps): # make sure no parents are still unvisited
908910 if parent_names .issubset (visited ): # make sure no parents are still unvisited
909- conditions = self ._parent_conditions_of [child . name ]
911+ conditions = self ._parent_conditions_of [child_name ]
910912 add = True
911913 for condition in conditions :
912914 if not condition .evaluate_vector (vector [i ]):
913915 add = False
914916 vector [i ][hyperparameter_idx ] = np .NaN
915- inactive .add (child . name )
917+ inactive .add (child_name )
916918 break
917919
918920 if add == True :
919921 active [hyperparameter_idx ] = 1
920- hps .appendleft (child . name )
922+ hps .appendleft (child_name )
921923
922924 else :
923925 continue
924926
925- # Surprisingly, the vector update wasn't faster
926- # vector[i][~active] = np.NaN
927- for j in range (num_hyperparameters ):
928- if not active [j ]:
929- vector [i ][j ] = np .NaN
927+ vector [i ][~ active ] = np .NaN
930928
931929 for clause in forbidden_clauses_conditionals :
932930 if clause .is_forbidden_vector (vector [i ], strict = False ):
0 commit comments