| @@ 206-261 (lines=56) @@ | ||
| 203 | assert n_performed_iter == (n_iter_no_change + 1) |
|
| 204 | ||
| 205 | ||
| 206 | @pytest.mark.parametrize(*optimizers) |
|
| 207 | def test_early_stop_6(Optimizer): |
|
| 208 | def objective_function(para): |
|
| 209 | return para["x1"] |
|
| 210 | ||
| 211 | search_space = { |
|
| 212 | "x1": np.arange(0, 100, 0.01), |
|
| 213 | } |
|
| 214 | ||
| 215 | n_iter_no_change = 5 |
|
| 216 | early_stopping = { |
|
| 217 | "n_iter_no_change": 5, |
|
| 218 | "tol_abs": None, |
|
| 219 | "tol_rel": 10, |
|
| 220 | } |
|
| 221 | ||
| 222 | start1 = {"x1": 1} |
|
| 223 | start2 = {"x1": 1.1} |
|
| 224 | start3 = {"x1": 1.22} |
|
| 225 | start4 = {"x1": 1.35} |
|
| 226 | start5 = {"x1": 1.48} |
|
| 227 | ||
| 228 | warm_start_l = [ |
|
| 229 | start1, |
|
| 230 | start1, |
|
| 231 | start1, |
|
| 232 | start1, |
|
| 233 | start1, |
|
| 234 | start2, |
|
| 235 | start2, |
|
| 236 | start2, |
|
| 237 | start3, |
|
| 238 | start3, |
|
| 239 | start3, |
|
| 240 | start4, |
|
| 241 | start4, |
|
| 242 | start4, |
|
| 243 | start5, |
|
| 244 | start5, |
|
| 245 | start5, |
|
| 246 | ] |
|
| 247 | n_iter = len(warm_start_l) |
|
| 248 | ||
| 249 | opt = Optimizer(search_space, initialize={"warm_start": warm_start_l}) |
|
| 250 | opt.search( |
|
| 251 | objective_function, |
|
| 252 | n_iter=n_iter, |
|
| 253 | early_stopping=early_stopping, |
|
| 254 | ) |
|
| 255 | search_data = opt.search_data |
|
| 256 | n_performed_iter = len(search_data) |
|
| 257 | ||
| 258 | print("\n n_performed_iter \n", n_performed_iter) |
|
| 259 | print("\n n_iter_no_change \n", n_iter_no_change) |
|
| 260 | ||
| 261 | assert n_performed_iter == n_iter |
|
| 262 | ||
| 263 | ||
| 264 | @pytest.mark.parametrize(*optimizers) |
|
| @@ 98-153 (lines=56) @@ | ||
| 95 | assert n_performed_iter == (n_iter_no_change + 2) |
|
| 96 | ||
| 97 | ||
| 98 | @pytest.mark.parametrize(*optimizers) |
|
| 99 | def test_early_stop_4(Optimizer): |
|
| 100 | def objective_function(para): |
|
| 101 | return para["x1"] |
|
| 102 | ||
| 103 | search_space = { |
|
| 104 | "x1": np.arange(0, 100, 0.1), |
|
| 105 | } |
|
| 106 | ||
| 107 | n_iter_no_change = 5 |
|
| 108 | early_stopping = { |
|
| 109 | "n_iter_no_change": 5, |
|
| 110 | "tol_abs": 0.1, |
|
| 111 | "tol_rel": None, |
|
| 112 | } |
|
| 113 | ||
| 114 | start1 = {"x1": 0} |
|
| 115 | start2 = {"x1": 0.1} |
|
| 116 | start3 = {"x1": 0.2} |
|
| 117 | start4 = {"x1": 0.3} |
|
| 118 | start5 = {"x1": 0.4} |
|
| 119 | ||
| 120 | warm_start_l = [ |
|
| 121 | start1, |
|
| 122 | start1, |
|
| 123 | start1, |
|
| 124 | start1, |
|
| 125 | start1, |
|
| 126 | start2, |
|
| 127 | start2, |
|
| 128 | start2, |
|
| 129 | start3, |
|
| 130 | start3, |
|
| 131 | start3, |
|
| 132 | start4, |
|
| 133 | start4, |
|
| 134 | start4, |
|
| 135 | start5, |
|
| 136 | start5, |
|
| 137 | start5, |
|
| 138 | ] |
|
| 139 | n_iter = len(warm_start_l) |
|
| 140 | ||
| 141 | opt = Optimizer(search_space, initialize={"warm_start": warm_start_l}) |
|
| 142 | opt.search( |
|
| 143 | objective_function, |
|
| 144 | n_iter=n_iter, |
|
| 145 | early_stopping=early_stopping, |
|
| 146 | ) |
|
| 147 | search_data = opt.search_data |
|
| 148 | n_performed_iter = len(search_data) |
|
| 149 | ||
| 150 | print("\n n_performed_iter \n", n_performed_iter) |
|
| 151 | print("\n n_iter_no_change \n", n_iter_no_change) |
|
| 152 | ||
| 153 | assert n_performed_iter == n_iter |
|
| 154 | ||
| 155 | ||
| 156 | @pytest.mark.parametrize(*optimizers) |
|
| @@ 203-257 (lines=55) @@ | ||
| 200 | assert n_performed_iter == (n_iter_no_change + 1) |
|
| 201 | ||
| 202 | ||
| 203 | def test_early_stop_6(): |
|
| 204 | def objective_function(para): |
|
| 205 | return para["x1"] |
|
| 206 | ||
| 207 | search_space = { |
|
| 208 | "x1": np.arange(0, 100, 0.01), |
|
| 209 | } |
|
| 210 | ||
| 211 | n_iter_no_change = 5 |
|
| 212 | early_stopping = { |
|
| 213 | "n_iter_no_change": 5, |
|
| 214 | "tol_abs": None, |
|
| 215 | "tol_rel": 10, |
|
| 216 | } |
|
| 217 | ||
| 218 | start1 = {"x1": 1} |
|
| 219 | start2 = {"x1": 1.1} |
|
| 220 | start3 = {"x1": 1.22} |
|
| 221 | start4 = {"x1": 1.35} |
|
| 222 | start5 = {"x1": 1.48} |
|
| 223 | ||
| 224 | warm_start_l = [ |
|
| 225 | start1, |
|
| 226 | start1, |
|
| 227 | start1, |
|
| 228 | start1, |
|
| 229 | start1, |
|
| 230 | start2, |
|
| 231 | start2, |
|
| 232 | start2, |
|
| 233 | start3, |
|
| 234 | start3, |
|
| 235 | start3, |
|
| 236 | start4, |
|
| 237 | start4, |
|
| 238 | start4, |
|
| 239 | start5, |
|
| 240 | start5, |
|
| 241 | start5, |
|
| 242 | ] |
|
| 243 | n_iter = len(warm_start_l) |
|
| 244 | ||
| 245 | opt = HillClimbingOptimizer(search_space, initialize={"warm_start": warm_start_l}) |
|
| 246 | opt.search( |
|
| 247 | objective_function, |
|
| 248 | n_iter=n_iter, |
|
| 249 | early_stopping=early_stopping, |
|
| 250 | ) |
|
| 251 | search_data = opt.search_data |
|
| 252 | n_performed_iter = len(search_data) |
|
| 253 | ||
| 254 | print("\n n_performed_iter \n", n_performed_iter) |
|
| 255 | print("\n n_iter_no_change \n", n_iter_no_change) |
|
| 256 | ||
| 257 | assert n_performed_iter == n_iter |
|
| 258 | ||
| 259 | ||
| 260 | def test_early_stop_7(): |
|
| @@ 97-151 (lines=55) @@ | ||
| 94 | assert n_performed_iter == (n_iter_no_change + 1) |
|
| 95 | ||
| 96 | ||
| 97 | def test_early_stop_4(): |
|
| 98 | def objective_function(para): |
|
| 99 | return para["x1"] |
|
| 100 | ||
| 101 | search_space = { |
|
| 102 | "x1": np.arange(0, 100, 0.1), |
|
| 103 | } |
|
| 104 | ||
| 105 | n_iter_no_change = 5 |
|
| 106 | early_stopping = { |
|
| 107 | "n_iter_no_change": 5, |
|
| 108 | "tol_abs": 1, |
|
| 109 | "tol_rel": None, |
|
| 110 | } |
|
| 111 | ||
| 112 | start1 = {"x1": 0} |
|
| 113 | start2 = {"x1": 1} |
|
| 114 | start3 = {"x1": 2} |
|
| 115 | start4 = {"x1": 3} |
|
| 116 | start5 = {"x1": 4} |
|
| 117 | ||
| 118 | warm_start_l = [ |
|
| 119 | start1, |
|
| 120 | start1, |
|
| 121 | start1, |
|
| 122 | start1, |
|
| 123 | start1, |
|
| 124 | start2, |
|
| 125 | start2, |
|
| 126 | start2, |
|
| 127 | start3, |
|
| 128 | start3, |
|
| 129 | start3, |
|
| 130 | start4, |
|
| 131 | start4, |
|
| 132 | start4, |
|
| 133 | start5, |
|
| 134 | start5, |
|
| 135 | start5, |
|
| 136 | ] |
|
| 137 | n_iter = len(warm_start_l) |
|
| 138 | ||
| 139 | opt = HillClimbingOptimizer(search_space, initialize={"warm_start": warm_start_l}) |
|
| 140 | opt.search( |
|
| 141 | objective_function, |
|
| 142 | n_iter=n_iter, |
|
| 143 | early_stopping=early_stopping, |
|
| 144 | ) |
|
| 145 | search_data = opt.search_data |
|
| 146 | n_performed_iter = len(search_data) |
|
| 147 | ||
| 148 | print("\n n_performed_iter \n", n_performed_iter) |
|
| 149 | print("\n n_iter_no_change \n", n_iter_no_change) |
|
| 150 | ||
| 151 | assert n_performed_iter == n_iter |
|
| 152 | ||
| 153 | ||
| 154 | def test_early_stop_5(): |
|