Conversation
|
Hello @MorrisNein! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found: There are currently no PEP 8 issues detected in this Pull Request. Cheers! 🍻 Comment last updated at 2023-11-04 12:07:43 UTC |
|
Hello @MorrisNein! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:
Comment last updated at 2023-11-04 12:07:51 UTC |
Codecov Report
@@ Coverage Diff @@
## main #228 +/- ##
==========================================
+ Coverage 72.16% 72.29% +0.13%
==========================================
Files 135 136 +1
Lines 8061 8184 +123
==========================================
+ Hits 5817 5917 +100
- Misses 2244 2267 +23
|
golem/core/tuning/tuner_interface.py
Outdated
| for tuned_graph in tuned_graphs: | ||
| obtained_metric = self.get_metric_value(graph=tuned_graph) | ||
| obtained_metric = self.evaluate_graph(graph=tuned_graph, label='tuning_result') |
There was a problem hiding this comment.
Немного не догоняю что происходит)) В этом цикле будут создаваться новые поколения в history для каждого посчитанного графа?
There was a problem hiding this comment.
В этом цикле будут создаваться новые поколения в history для каждого посчитанного графа?
Да, но так быть не должно. Исправил, разделив оценку графов и сохранение истории.
There was a problem hiding this comment.
Я правильно понимаю, что есть тест, в котором проверяется соответствие количества новых поколений количеству шагов тюнера?
0af205f to
37de94d
Compare
|
Добавил в тюнеры работу с классами истории оптимизации, раз уж теперь они могут сохранять в неё результаты. Сравнение графов между собой, на мой взгляд, стало удобнее, особенно для MultiObjFitness: не нужно перегонять метрики в класс MultiObjFitness и обратно. |
37de94d to
1c42b3f
Compare
| from iOpt.solver import Solver | ||
| from iOpt.solver_parametrs import SolverParameters | ||
| from iOpt.trial import Point, FunctionValue | ||
| from iOpt.trial import FunctionValue, Point |
There was a problem hiding this comment.
Почему в этом тюнере не добавлена возможность сохранить в историю?
There was a problem hiding this comment.
Пока что сохраняются изначальный и финальный графы через initial_check и final_check.
Но тут можно прокинуть в GolemProblem функцию для сохранения промежуточных результатов. Пожалуй, так и сделаю.
| self._generations: List[Generation] = [] | ||
| self.archive_history: List[List[Individual]] = [] | ||
| self._tuning_result: Optional[Graph] = None | ||
| self.evolution_best_archive: List[List[Individual]] = [] |
There was a problem hiding this comment.
Я не совсем понимаю зачем нужно такое переименование?
There was a problem hiding this comment.
Я пока не реализовал ведение archive_history для тюнинга, потому что для оптимизации его ведёт фронт Парето в составе оптимизатора. Поэтому название поля явно отражает, что оно относится к истории эволюции, но не тюнинга.
Честно, не знаю, как тут лучше поступить.
There was a problem hiding this comment.
Ну точно не нужна отсылка к эволюции, для большей абстрактности.
Мне кажется идея что archive_history это основная история, а для файн-тюнинга - отдельная, будет доступной пользователю.
| class OptHistoryLabels(str, Enum): | ||
| initial_assumptions = 'initial_assumptions' | ||
| extended_initial_assumptions = 'extended_initial_assumptions' | ||
| evolution_results = 'evolution_results' |
There was a problem hiding this comment.
Аналогично, можно про эволюцию явно не писать.
|
|
||
| def add_to_archive_history(self, individuals: Sequence[Individual]): | ||
| self.archive_history.append(list(individuals)) | ||
| def add_to_evolution_best_archive(self, individuals: Sequence[Individual]): |
There was a problem hiding this comment.
Может сделать единый метод, просто передавать в параметрах нужную метку?
| self.init_metric = None | ||
| self.obtained_metric = None | ||
| self.init_individual = None | ||
| self.obtained_individual = None |
|
Хорошо бы в одном из примеров показать как использовать новую фунциональность. У @YamLyubov был пример с раскраской графа, например. |
Adds an option to save graph to OptHistory after each objective evaluation in the process of tuning (Solves #226).
Allows tuners to work with Individual and Fitness for graphs comparison & history saving.
Changes OptHistory fields:
tuning_resultfinal_choices->evolution_resultsarchive_history->evolution_best_archiveAllows histories backward compatibility.
Fixes previously unknown bug with multi objective tuning.