mirror of
https://github.com/jung-geun/PSO.git
synced 2025-12-20 04:50:45 +09:00
23-05-31
지역해에 조기수렴하는 문제를 줄이기 위해 일정 비율을 전역해에서 반대 방향의 1/2 만큼 속도를 가지도록 조정
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user