지역해에 조기수렴하는 문제를 줄이기 위해 일정 비율을 전역해에서 반대 방향의 1/2 만큼 속도를 가지도록 조정
This commit is contained in:
jung-geun
2023-05-31 19:57:55 +09:00
parent 8012cf3557
commit 89449048c4
6 changed files with 62 additions and 67 deletions

View File

@@ -17,7 +17,6 @@ class Particle:
self.best_score = 0
self.best_weights = self.init_weights
"""
Returns:
(cupy array) : 가중치 - 1차원으로 풀어서 반환
@@ -35,7 +34,6 @@ class Particle:
lenght.append(len(w_))
# w_gpu = cp.append(w_gpu, w_)
w_gpu = np.append(w_gpu, w_)
return w_gpu, shape, lenght
"""
@@ -95,11 +93,10 @@ class Particle:
encode_w, w_sh, w_len = self._encode(weights = self.model.get_weights())
encode_v, _, _ = self._encode(weights = self.velocities)
if self.random:
encode_v = -1 * encode_v
encode_v = -0.5 * encode_v
new_w = encode_w + encode_v
self.model.set_weights(self._decode(new_w, w_sh, w_len))
def f(self, x, y, weights):
self.model.set_weights(weights)
score = self.model.evaluate(x, y, verbose = 0)[1]
@@ -118,7 +115,6 @@ class Particle:
self._update_weights()
return self.get_score(x, y, renewal)
def get_best_score(self):
return self.best_score