Skip to content

Commit f1113be

Browse files
committed
Update
1 parent f005ab7 commit f1113be

File tree

7 files changed

+222
-121
lines changed

7 files changed

+222
-121
lines changed

config.py

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,26 @@ class Exp:
123123
# }
124124
}
125125

126-
OPTIMIZERS = [
126+
127+
MLP_OPTIMIZERS = [
127128
#### MHA-MLP
128129
# {"name": "GA-MLP", "class": "GaMlp", "param_grid": ga_paras}, # Genetic Algorithm
129130
# {"name": "JADE-MLP", "class": "JadeMlp", "param_grid": jade_paras}, # Differential Evolution
130131
# {"name": "CL-PSO-MLP", "class": "CLPsoMlp", "param_grid": clpso_paras}, # Particle Swarm Optimization
131132
# {"name": "SLO-MLP", "class": "SloMlp", "param_grid": slo_paras}, # Sea Lion Optimization
132133
# {"name": "ISLO-MLP", "class": "IsloMlp", "param_grid": islo_paras}, # Improved Sea Lion Optimization
133134

135+
{"name": "FPA-MLP", "class": "FpaMlp", "param_grid": general_paras}, # Sea Lion Optimization
136+
{"name": "HHO-MLP", "class": "HhoMlp", "param_grid": general_paras}, # Improved Sea Lion Optimization
137+
{"name": "HGS-MLP", "class": "HgsMlp", "param_grid": general_paras}, # Sea Lion Optimization
138+
{"name": "NRO-MLP", "class": "NroMlp", "param_grid": general_paras}, # Improved Sea Lion Optimization
139+
{"name": "TLO-MLP", "class": "TloMlp", "param_grid": general_paras}, # Sea Lion Optimization
140+
{"name": "FBIO-MLP", "class": "FbioMlp", "param_grid": general_paras}, # Improved Sea Lion Optimization
141+
{"name": "SMA-MLP", "class": "SmaMlp", "param_grid": general_paras}, # Improved Sea Lion Optimization
142+
]
143+
144+
ELM_OPTIMIZERS = [
145+
134146
#### MHA-ELM
135147
# {"name": "GA-ELM", "class": "GaElm", "param_grid": ga_paras}, # Genetic Algorithm
136148
# {"name": "JADE-ELM", "class": "JadeElm", "param_grid": jade_paras}, # Differential Evolution
@@ -147,6 +159,23 @@ class Exp:
147159
{"name": "SMA-ELM", "class": "SmaElm", "param_grid": general_paras}, # Improved Sea Lion Optimization
148160
]
149161

162+
CFNN_OPTIMIZERS = [
163+
#### MHA-MLP
164+
# {"name": "GA-CFNN", "class": "GaCfnn", "param_grid": ga_paras}, # Genetic Algorithm
165+
# {"name": "JADE-CFNN", "class": "JadeCfnn", "param_grid": jade_paras}, # Differential Evolution
166+
# {"name": "CL-PSO-CFNN", "class": "CLPsoCfnn", "param_grid": clpso_paras}, # Particle Swarm Optimization
167+
# {"name": "SLO-CFNN", "class": "SloCfnn", "param_grid": slo_paras}, # Sea Lion Optimization
168+
# {"name": "ISLO-CFNN", "class": "IsloCfnn", "param_grid": islo_paras}, # Improved Sea Lion Optimization
169+
170+
{"name": "FPA-CFNN", "class": "FpaCfnn", "param_grid": general_paras}, # Sea Lion Optimization
171+
{"name": "HHO-CFNN", "class": "HhoCfnn", "param_grid": general_paras}, # Improved Sea Lion Optimization
172+
{"name": "HGS-CFNN", "class": "HgsCfnn", "param_grid": general_paras}, # Sea Lion Optimization
173+
{"name": "NRO-CFNN", "class": "NroCfnn", "param_grid": general_paras}, # Improved Sea Lion Optimization
174+
{"name": "TLO-CFNN", "class": "TloCfnn", "param_grid": general_paras}, # Sea Lion Optimization
175+
{"name": "FBIO-CFNN", "class": "FbioCfnn", "param_grid": general_paras}, # Improved Sea Lion Optimization
176+
{"name": "SMA-CFNN", "class": "SmaCfnn", "param_grid": general_paras}, # Improved Sea Lion Optimization
177+
]
178+
150179
# Evo --> FPA
151180
# Swarm -> HHO, HGS
152181
# Physic-=> NRO,

lstm1hl_script.py

Lines changed: 0 additions & 58 deletions
This file was deleted.

model/app/mha_cfnn.py

Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
#!/usr/bin/env python
2+
# ------------------------------------------------------------------------------------------------------%
3+
# Created by "Thieu" at 09:51, 16/07/2021 %
4+
# %
5+
# Email: nguyenthieu2102@gmail.com %
6+
# Homepage: https://www.researchgate.net/profile/Nguyen_Thieu2 %
7+
# Github: https://github.com/thieu1995 %
8+
# ------------------------------------------------------------------------------------------------------%
9+
10+
from mealpy.evolutionary_based import GA, DE, FPA
11+
from mealpy.swarm_based import ABC, PSO, HHO, GWO, WOA, SpaSA, MFO, ALO, GOA, SalpSO, DO, FA, BeesA, ACOR, NMRA
12+
from mealpy.swarm_based import FireflyA, BA, FOA, SSO, SSA, EHO, JA, BSA, SHO, SRSR, MSA, BES, PFA, SFO, MRFO, HGS
13+
from mealpy.bio_based import BBO, IWO, SMA, EOA, SBO, VCS
14+
from mealpy.human_based import TLO, LCBO, ICA, CA, BRO, BSO, CHIO, FBIO, GSKA, QSA, SARO, SSDO
15+
from mealpy.physics_based import MVO, EO, SA, HGSO, ASO, EFO, NRO, TWO, WDO
16+
from mealpy.math_based import SCA, HC
17+
from mealpy.system_based import WCA, AEO, GCO
18+
from mealpy.dummy import BOA
19+
from mealpy.swarm_based import SLO
20+
from model.app.hybrid_cfnn import HybridCfnn
21+
22+
23+
## Evolutionary Group
24+
25+
class GaCfnn(HybridCfnn):
26+
def __init__(self, mha_paras=None):
27+
super().__init__()
28+
self.epoch = mha_paras["epoch"]
29+
self.pop_size = mha_paras["pop_size"]
30+
self.pc = mha_paras["pc"]
31+
self.pm = mha_paras["pm"]
32+
self.filename = f"{self.epoch}-{self.pop_size}-{self.pc}-{self.pm}"
33+
34+
# fit hybrid MLP network to training data
35+
def fit_model(self):
36+
self.opt = GA.BaseGA(obj_func=self.objective_function, lb=self.lb, ub=self.ub, verbose=self.verbose,
37+
epoch=self.epoch, pop_size=self.pop_size, pc=self.pc, pm=self.pm)
38+
self.solution, self.fitness, self.list_loss = self.opt.train()
39+
40+
41+
class JadeCfnn(HybridCfnn):
42+
def __init__(self, mha_paras=None):
43+
super().__init__()
44+
self.epoch = mha_paras["epoch"]
45+
self.pop_size = mha_paras["pop_size"]
46+
self.miu_f = mha_paras["miu_f"]
47+
self.miu_cr = mha_paras["miu_cr"]
48+
self.pp = mha_paras["pp"]
49+
self.cc = mha_paras["cc"]
50+
self.filename = f"{self.epoch}-{self.pop_size}-{self.miu_f}-{self.miu_cr}-{self.pp}-{self.cc}"
51+
52+
# fit hybrid MLP network to training data
53+
def fit_model(self):
54+
self.opt = DE.JADE(obj_func=self.objective_function, lb=self.lb, ub=self.ub, verbose=self.verbose,
55+
epoch=self.epoch, pop_size=self.pop_size, miu_f=self.miu_f, miu_cr=self.miu_cr,
56+
p=self.pp, c=self.cc)
57+
self.solution, self.fitness, self.list_loss = self.opt.train()
58+
59+
60+
## Swarm Group
61+
62+
class CLPsoCfnn(HybridCfnn):
63+
def __init__(self, mha_paras=None):
64+
super().__init__()
65+
self.epoch = mha_paras["epoch"]
66+
self.pop_size = mha_paras["pop_size"]
67+
self.c_local = mha_paras["c_local"]
68+
self.w_min = mha_paras["w_min"]
69+
self.w_max = mha_paras["w_max"]
70+
self.filename = f"{self.epoch}-{self.pop_size}-{self.c_local}-{self.w_min}-{self.w_max}"
71+
72+
def fit_model(self):
73+
self.opt = PSO.CL_PSO(self.objective_function, self.lb, self.ub, self.verbose,
74+
self.epoch, self.pop_size, self.c_local, self.w_min, self.w_max)
75+
self.solution, self.fitness, self.list_loss = self.opt.train()
76+
77+
78+
class SloCfnn(HybridCfnn):
79+
def __init__(self, mha_paras=None):
80+
super().__init__()
81+
self.epoch = mha_paras["epoch"]
82+
self.pop_size = mha_paras["pop_size"]
83+
self.filename = f"{self.epoch}-{self.pop_size}"
84+
85+
def fit_model(self):
86+
self.opt = SLO.BaseSLO(self.objective_function, self.lb, self.ub, self.verbose, self.epoch, self.pop_size)
87+
self.solution, self.fitness, self.list_loss = self.opt.train()
88+
89+
90+
class IsloCfnn(HybridCfnn):
91+
def __init__(self, mha_paras=None):
92+
super().__init__()
93+
self.epoch = mha_paras["epoch"]
94+
self.pop_size = mha_paras["pop_size"]
95+
self.filename = f"{self.epoch}-{self.pop_size}"
96+
97+
def fit_model(self):
98+
self.opt = SLO.ISLO(self.objective_function, self.lb, self.ub, self.verbose, self.epoch, self.pop_size)
99+
self.solution, self.fitness, self.list_loss = self.opt.train()
100+
101+
102+
class FpaCfnn(HybridCfnn):
103+
def __init__(self, mha_paras=None):
104+
super().__init__()
105+
self.epoch = mha_paras["epoch"]
106+
self.pop_size = mha_paras["pop_size"]
107+
self.filename = f"{self.epoch}-{self.pop_size}"
108+
109+
def fit_model(self):
110+
self.opt = FPA.BaseFPA(self.objective_function, self.lb, self.ub, self.verbose, self.epoch, self.pop_size)
111+
self.solution, self.fitness, self.list_loss = self.opt.train()
112+
113+
114+
class HhoCfnn(HybridCfnn):
115+
def __init__(self, mha_paras=None):
116+
super().__init__()
117+
self.epoch = mha_paras["epoch"]
118+
self.pop_size = mha_paras["pop_size"]
119+
self.filename = f"{self.epoch}-{self.pop_size}"
120+
121+
def fit_model(self):
122+
self.opt = HHO.BaseHHO(self.objective_function, self.lb, self.ub, self.verbose, self.epoch, self.pop_size)
123+
self.solution, self.fitness, self.list_loss = self.opt.train()
124+
125+
126+
class HgsCfnn(HybridCfnn):
127+
def __init__(self, mha_paras=None):
128+
super().__init__()
129+
self.epoch = mha_paras["epoch"]
130+
self.pop_size = mha_paras["pop_size"]
131+
self.filename = f"{self.epoch}-{self.pop_size}"
132+
133+
def fit_model(self):
134+
self.opt = HGS.OriginalHGS(self.objective_function, self.lb, self.ub, self.verbose, self.epoch, self.pop_size)
135+
self.solution, self.fitness, self.list_loss = self.opt.train()
136+
137+
138+
class NroCfnn(HybridCfnn):
139+
def __init__(self, mha_paras=None):
140+
super().__init__()
141+
self.epoch = mha_paras["epoch"]
142+
self.pop_size = mha_paras["pop_size"]
143+
self.filename = f"{self.epoch}-{self.pop_size}"
144+
145+
def fit_model(self):
146+
self.opt = NRO.BaseNRO(self.objective_function, self.lb, self.ub, self.verbose, self.epoch, self.pop_size)
147+
self.solution, self.fitness, self.list_loss = self.opt.train()
148+
149+
150+
class TloCfnn(HybridCfnn):
151+
def __init__(self, mha_paras=None):
152+
super().__init__()
153+
self.epoch = mha_paras["epoch"]
154+
self.pop_size = mha_paras["pop_size"]
155+
self.filename = f"{self.epoch}-{self.pop_size}"
156+
157+
def fit_model(self):
158+
self.opt = TLO.BaseTLO(self.objective_function, self.lb, self.ub, self.verbose, self.epoch, self.pop_size)
159+
self.solution, self.fitness, self.list_loss = self.opt.train()
160+
161+
162+
class FbioCfnn(HybridCfnn):
163+
def __init__(self, mha_paras=None):
164+
super().__init__()
165+
self.epoch = mha_paras["epoch"]
166+
self.pop_size = mha_paras["pop_size"]
167+
self.filename = f"{self.epoch}-{self.pop_size}"
168+
169+
def fit_model(self):
170+
self.opt = FBIO.BaseFBIO(self.objective_function, self.lb, self.ub, self.verbose, self.epoch, self.pop_size)
171+
self.solution, self.fitness, self.list_loss = self.opt.train()
172+
173+
174+
class SmaCfnn(HybridCfnn):
175+
def __init__(self, mha_paras=None):
176+
super().__init__()
177+
self.epoch = mha_paras["epoch"]
178+
self.pop_size = mha_paras["pop_size"]
179+
self.filename = f"{self.epoch}-{self.pop_size}"
180+
181+
def fit_model(self):
182+
self.opt = SMA.BaseSMA(self.objective_function, self.lb, self.ub, self.verbose, self.epoch, self.pop_size)
183+
self.solution, self.fitness, self.list_loss = self.opt.train()
184+
185+
# Evo --> FPA
186+
# Swarm -> HHO, HGS
187+
# Physic-=> NRO,
188+
# Human --> TLO, FBIO,
189+
# Bio -> SMA

rnn1hl_script.py

Lines changed: 0 additions & 59 deletions
This file was deleted.

test_hybrid_cfnn.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def setting_and_running(optimizer):
3030
if __name__ == '__main__':
3131
starttime = time()
3232
processes = []
33-
for optimizer in Exp.OPTIMIZERS:
33+
for optimizer in Exp.CFNN_OPTIMIZERS:
3434
p = multiprocessing.Process(target=setting_and_running, args=(optimizer,))
3535
processes.append(p)
3636
p.start()

test_hybrid_elm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def setting_and_running(optimizer):
3030
if __name__ == '__main__':
3131
starttime = time()
3232
processes = []
33-
for optimizer in Exp.OPTIMIZERS:
33+
for optimizer in Exp.ELM_OPTIMIZERS:
3434
p = multiprocessing.Process(target=setting_and_running, args=(optimizer,))
3535
processes.append(p)
3636
p.start()

test_hybrid_mlp.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def setting_and_running(optimizer):
3030
if __name__ == '__main__':
3131
starttime = time()
3232
processes = []
33-
for optimizer in Exp.OPTIMIZERS:
33+
for optimizer in Exp.MLP_OPTIMIZERS:
3434
p = multiprocessing.Process(target=setting_and_running, args=(optimizer,))
3535
processes.append(p)
3636
p.start()

0 commit comments

Comments
 (0)