From adc9cb57f8ad41d00c8a0ab250b594c12fe6f0ba Mon Sep 17 00:00:00 2001 From: hrntsm Date: Sat, 8 Feb 2025 14:31:24 +0900 Subject: [PATCH] Add optuna hub force reload --- Optuna/Sampler/NSGAIIISampler.cs | 2 + Optuna/Sampler/OptunaHub/AutoSampler.cs | 4 +- Optuna/Sampler/OptunaHub/HubSamplerBase.cs | 7 ++++ Optuna/Sampler/OptunaHub/MOEADSampler.cs | 3 +- Optuna/Sampler/OptunaHub/MoCmaEsSampler.cs | 4 +- .../Sampler/{ => OptunaHub}/NSGAIISampler.cs | 7 ++-- Tunny/WPF/MainWindow.xaml | 38 ++++++++++--------- Tunny/WPF/ViewModels/MainWindowViewModel.cs | 11 ++++++ .../Settings/Sampler/AutoSettingsPage.xaml | 10 +++++ .../Settings/Sampler/AutoSettingsPage.xaml.cs | 2 + .../Settings/Sampler/MOEADSettingsPage.xaml | 9 +++++ .../Sampler/MOEADSettingsPage.xaml.cs | 5 ++- .../Settings/Sampler/MoCmaEsSettingsPage.xaml | 9 +++++ .../Sampler/MoCmaEsSettingsPage.xaml.cs | 3 ++ .../Settings/Sampler/NSGAIISettingsPage.xaml | 9 +++++ .../Sampler/NSGAIISettingsPage.xaml.cs | 7 +++- 16 files changed, 101 insertions(+), 29 deletions(-) create mode 100644 Optuna/Sampler/OptunaHub/HubSamplerBase.cs rename Optuna/Sampler/{ => OptunaHub}/NSGAIISampler.cs (91%) diff --git a/Optuna/Sampler/NSGAIIISampler.cs b/Optuna/Sampler/NSGAIIISampler.cs index 29533585..a71e62b4 100644 --- a/Optuna/Sampler/NSGAIIISampler.cs +++ b/Optuna/Sampler/NSGAIIISampler.cs @@ -1,3 +1,5 @@ +using Optuna.Sampler.OptunaHub; + using Python.Runtime; namespace Optuna.Sampler diff --git a/Optuna/Sampler/OptunaHub/AutoSampler.cs b/Optuna/Sampler/OptunaHub/AutoSampler.cs index e7ad1aea..961dce2e 100644 --- a/Optuna/Sampler/OptunaHub/AutoSampler.cs +++ b/Optuna/Sampler/OptunaHub/AutoSampler.cs @@ -5,14 +5,14 @@ namespace Optuna.Sampler.OptunaHub /// /// https://hub.optuna.org/samplers/auto_sampler/ /// - public class AutoSampler : SamplerBase + public class AutoSampler : HubSamplerBase { private const string Package = "samplers/auto_sampler"; public dynamic ToPython() { dynamic optunahub = Py.Import("optunahub"); - dynamic module = optunahub.load_module(package: Package); + dynamic module = optunahub.load_module(package: Package, force_reload: ForceReload); return module.AutoSampler( seed: Seed ); diff --git a/Optuna/Sampler/OptunaHub/HubSamplerBase.cs b/Optuna/Sampler/OptunaHub/HubSamplerBase.cs new file mode 100644 index 00000000..6485ce73 --- /dev/null +++ b/Optuna/Sampler/OptunaHub/HubSamplerBase.cs @@ -0,0 +1,7 @@ +namespace Optuna.Sampler.OptunaHub +{ + public class HubSamplerBase : SamplerBase + { + public bool ForceReload { get; set; } + } +} diff --git a/Optuna/Sampler/OptunaHub/MOEADSampler.cs b/Optuna/Sampler/OptunaHub/MOEADSampler.cs index 6584df7d..787326bb 100644 --- a/Optuna/Sampler/OptunaHub/MOEADSampler.cs +++ b/Optuna/Sampler/OptunaHub/MOEADSampler.cs @@ -15,6 +15,7 @@ public class MOEADSampler : GASamplerBase public double SwappingProb { get; set; } = 0.5; public ScalarAggregationType ScalarAggregation { get; set; } = ScalarAggregationType.tchebycheff; public int NumNeighbors { get; set; } = -1; + public bool ForceReload { get; set; } public dynamic ToPython() { @@ -25,7 +26,7 @@ public dynamic ToPython() { NumNeighbors = PopulationSize / 5; } - dynamic module = optunahub.load_module(package: Package); + dynamic module = optunahub.load_module(package: Package, force_reload: ForceReload); return module.MOEADSampler( population_size: PopulationSize, mutation_prob: MutationProb, diff --git a/Optuna/Sampler/OptunaHub/MoCmaEsSampler.cs b/Optuna/Sampler/OptunaHub/MoCmaEsSampler.cs index 98eee702..8c25347a 100644 --- a/Optuna/Sampler/OptunaHub/MoCmaEsSampler.cs +++ b/Optuna/Sampler/OptunaHub/MoCmaEsSampler.cs @@ -2,7 +2,7 @@ namespace Optuna.Sampler.OptunaHub { - public class MoCmaEsSampler : SamplerBase + public class MoCmaEsSampler : HubSamplerBase { private const string Package = "samplers/mocma"; public int? PopulationSize { get; set; } @@ -10,7 +10,7 @@ public class MoCmaEsSampler : SamplerBase public dynamic ToPython() { dynamic optunahub = Py.Import("optunahub"); - dynamic module = optunahub.load_module(package: Package); + dynamic module = optunahub.load_module(package: Package, force_reload: ForceReload); return module.MoCmaSampler( popsize: PopulationSize, seed: Seed diff --git a/Optuna/Sampler/NSGAIISampler.cs b/Optuna/Sampler/OptunaHub/NSGAIISampler.cs similarity index 91% rename from Optuna/Sampler/NSGAIISampler.cs rename to Optuna/Sampler/OptunaHub/NSGAIISampler.cs index 33d15be4..8de1f58f 100644 --- a/Optuna/Sampler/NSGAIISampler.cs +++ b/Optuna/Sampler/OptunaHub/NSGAIISampler.cs @@ -1,8 +1,6 @@ -using System; - using Python.Runtime; -namespace Optuna.Sampler +namespace Optuna.Sampler.OptunaHub { /// /// https://optuna.readthedocs.io/en/stable/reference/generated/optuna.samplers.NSGAIISampler.html @@ -15,12 +13,13 @@ public class NSGAIISampler : GASamplerBase public string Crossover { get; set; } = "BLXAlpha"; public double CrossoverProb { get; set; } = 0.9; public double SwappingProb { get; set; } = 0.5; + public bool ForceReload { get; set; } public dynamic ToPython(bool hasConstraints) { dynamic optuna = Py.Import("optuna"); dynamic optunahub = Py.Import("optunahub"); - dynamic module = optunahub.load_module(package: Package); + dynamic module = optunahub.load_module(package: Package, force_reload: ForceReload); return module.NSGAIIwITSampler( population_size: PopulationSize, mutation_prob: MutationProb, diff --git a/Tunny/WPF/MainWindow.xaml b/Tunny/WPF/MainWindow.xaml index c7f11ef7..6ffec92a 100644 --- a/Tunny/WPF/MainWindow.xaml +++ b/Tunny/WPF/MainWindow.xaml @@ -47,6 +47,10 @@ Command="{Binding QuickAccessStorageFileOpenCommand}" SmallImageSource="{StaticResource OpenFolderOutline}" ToolTip="Open Optimization Result File" /> + @@ -92,15 +96,8 @@ Label="GP BoTorch" LargeImageSource="{StaticResource Torch}" SmallImageSource="{StaticResource Torch}" /> - - + + - - - + + + _showTopmost; + set + { + SetProperty(ref _showTopmost, value); + SharedItems.Instance.TunnyWindow.Topmost = value == true; + } + } } } diff --git a/Tunny/WPF/Views/Pages/Settings/Sampler/AutoSettingsPage.xaml b/Tunny/WPF/Views/Pages/Settings/Sampler/AutoSettingsPage.xaml index 9ccca58c..93043819 100644 --- a/Tunny/WPF/Views/Pages/Settings/Sampler/AutoSettingsPage.xaml +++ b/Tunny/WPF/Views/Pages/Settings/Sampler/AutoSettingsPage.xaml @@ -44,6 +44,16 @@ Text="AUTO" TextAlignment="Right" /> + +